J'écris un programme simple pour suivre les records de golf et je vois des résultats étranges avec les relations d'entités. Ma table Hole
a une relation de clé étrangère sur sa colonne CourseId
et la colonne Course
tables Id
.Clés étrangères et relations d'entité
Quand je lance le
suivantusing (var context = new DataAccess.Entities())
{
var courseId = 0;
var holesInCourse = context.Holes.Where(x => x.CourseId == courseId);
var holeList = holesInCourse.ToList();
}
Vous pouvez voir qu'il retourne la liste des 9 trous pour le cours donné de 0
Cependant quand je change la requête à la suivant:
using (var context = new DataAccess.Entities())
{
var courseId = 0;
var holesInCourse = context.Courses.FirstOrDefault(x => x.Id == courseId);
var holeList = holesInCourse.Holes.ToList();
}
Je suis un peu perdu pourquoi le second ne renvoie que 4 lignes quand il a clairement une relation avec 9. Est-ce la façon dont je construis ma requête?
utilisez-vous le chargement paresseux? pouvez-vous essayer ceci: 'context.Courses.Includ (" Holes ")' pour voir ce qui se passe – renakre
A quoi ressemblent les requêtes des deux appels 'ToList'? –
Activer le chargement paresseux n'a pas résolu le problème, je pense que je vais abandonner en utilisant des contraintes FK ici car c'est juste trop complexe pour ce que je fais. –