Ich habe ein Problem mit Entity Framework Code Erste Annäherung bei der Entwicklung von Baumhierarchien.EF-Code zuerst. Kindersammlung ist Null für Eltern
Ich muss einige Baum in einer Datenbank speichern. Meine Tabelle hat drei Felder ID, Name und Parent_Id. Ich habe die folgende Klasse in meiner Lösung:
public class TreeNode
{
public TreeNode()
{
Children = new List<TreeNode>();
}
public int Id { get; set; }
[Required]
public String Name { get; set; }
public virtual IList<TreeNode> Children { get; set; }
public virtual TreeNode Parent { get; set; }
}
ich die folgende Konfiguration für TreeNode Klasse
modelBuilder.Entity<TreeNode>().HasOptional(c => c.Parent)
.WithMany(c => c.Children)
.Map(m => m.MapKey("Parent_Id"));
Die Frage hinzugefügt haben, ist, dass Kinder immer null ist, wenn sie von EF zurückgegeben.
Wenn Sie jedoch einen untergeordneten Knoten abrufen, erhalten Sie den Parent-Knoten über die Parent-Eigenschaft und die Children-Eigenschaft wird korrekt ausgefüllt.
Ich bin mir nicht sicher, was hier falsch ist. Auf der Suche nach Ihrem Rat.
Update: Zugabe von virtuellen Modifikator Navigationseigenschaften nicht helfen
Dank. Auch mit virtuellen Eigenschaften Kinder werden nicht zurückgegeben. – lostaman
@lostaman stellen Sie sicher, dass Lazy-Loading für den Kontext aktiviert ist context.Configuration.LazyLoadingEnabled = true; ' –
Danke @lazyberezovsky. Ich habe diese Option auf false gesetzt. Ich habe es in "true" geändert und erhalte jetzt einen Fehler "Es ist bereits ein offener DataReader mit diesem Befehl verbunden, der zuerst geschlossen werden muss", wenn er versucht, auf die Children-Sammlung zuzugreifen. – lostaman