Nous avons 3 tables dans notre base de données qui ont chacune une entité dans notre edmx. Pour illustrer mon problème, imaginez 3 tables:Entity Framework 4.0 - Y compris les entités - Problème de chargement Eager
Table: Make
Fields:
makeID
make
Table: Model
FIelds:
modelID
makeID foreign key
model
Table: Car
carID
modelID foreign key
car
Nos entités Make, Model et Car ont toutes les propriétés de navigation dans le modèle d'entité. Le chargement paresseux est désactivé. Nous voulons être en mesure de tirer toutes les voitures qui sont Jeep Grand Cherokees à la sortie de notre page.
En ce moment, nous avons quelque chose comme ça dans l'une de nos fonctions (C# 4,0)
IEnumerable<Make> makeList = (((ObjectSet<Lot>)_modelRepository.GetQuery())
.Include(mk => mk.Models.Where(md => md.model == "Grand Cherokee"))
.Where(mk => mk.make == "Jeep").ToList());
_makeRepository.GetQuery()
retourne un IQueryable
... nous mettre en œuvre le modèle référentiel
Cette requête devrait fonctionner correctement (havre de paix pas testé, créé pour cet exemple) mais comment pouvons-nous .Include
la table de la voiture pour que notre fonction retourne Faire des objets d'entité tels que le modèle est peuplé et les voitures sont peuplées (problème d'obtenir les voitures parce qu'ils n'ont pas une navigation directe propriété à faire)
Nous utilisons des objets POCO.
L'objectif est d'avoir une fonction qui retourne une entité livrerai pour être en mesure de le faire:
foreach(Make myMake in makeList)
{
Response.Write(myMake.make);
foreach(Model myModel in myMake.Models)
{
Response.Write(myModel.model);
foreach(Car mycar in myModel.Cars)
{
Response.Write(mycar.car);
}
}
}
Quelque chose comme cela ne semble pas possible, mais son que nous allons pour:
IEnumerable<Make> makeList = (((ObjectSet<Lot>)_modelRepository.GetQuery())
.Include(mk => mk.Models.Where(md => md.model == "Grand Cherokee"))
.Include(c => mk.Models.Cars)
.Where(mk => mk.make == "Jeep").ToList());
J'ai également essayé de créer une nouvelle entité dans mon edmx qui contient toutes ces informations afin que je puisse simplement interroger cet objet mais je reçois des erreurs en disant que les clés doivent être mappées ... Je les ai cartographiées dans le Mapping onglet (Visual Studio 2010) ... donc je suis de retour à essayer de faire fonctionner la requête.