Comment inclure un objet enfant de l'enfant de l'objet dans l'Entity Framework 5
Je suis en utilisant Entity Framework 5 code first
et ASP.NET MVC 3
.
J'ai du mal à obtenir un objet enfant de l'enfant de l'objet à remplir. Ci-dessous sont mes cours..
Classe d'Application;
public class Application
{
//Partial list of properties
public virtual ICollection<Child> Children { get; set; }
}
Enfant de la classe:
public class Child
{
//Partial list of properties
public int ChildRelationshipTypeId { get; set; }
public virtual ChildRelationshipType ChildRelationshipType { get; set; }
}
ChildRelationshipType classe:
public class ChildRelationshipType
{
public int Id { get; set; }
public string Name { get; set; }
}
Partie de GetAll méthode dans le référentiel pour retourner toutes les applications:
return DatabaseContext.Applications
.Include("Children");
L'Enfant classe contient une référence à la ChildRelationshipType classe. Pour travailler avec une application enfants, je voudrais avoir quelque chose comme ceci:
foreach (Child child in application.Children)
{
string childName = child.ChildRelationshipType.Name;
}
J'obtiens une erreur ici que le contexte de l'objet est déjà fermé.
Comment puis-je spécifier que chaque objet enfant doit inclure le ChildRelationshipType
objet comme ce que j'ai fait ci-dessus?
- Double Possible de Entity Framework - Inclure Plusieurs Niveaux de Propriétés
Vous devez vous connecter pour publier un commentaire.
Si vous incluez la bibliothèque
System.Data.Entity
vous pouvez utiliser une surcharge de laInclude()
méthode qui prend une expression lambda au lieu d'une chaîne de caractères. Vous pouvez ensuiteSelect()
sur les enfants avec les expressions Linq plutôt questring
chemins.System.Data.Entity;
Microsoft.Data.Entity
Avec EF de Base dans .NET Core, vous pouvez utiliser le mot-clé
ThenInclude
:Inclure childs de childrens collection :
J'ai fini par faire ce qui suit, et ça fonctionne:
nameof()
permettra de résoudre ce problème 😉Un bon exemple de l'utilisation du Générique modèle de Référentiel et la mise en œuvre d'une solution générique pour ce qui pourrait ressembler à quelque chose comme ça.