2016-06-23 14 views
0

Ich versuche, diese einfachen Kategorien Tabelle zu erstellen:EF6-Code Erste - Selbst Referenzierung configure Navigationseigenschaften

public class Category 
{ 
    public int Id { get; set; } 

    public string Name { get; set; } 

    public int? ParentId { get; set; } 

    [InverseProperty("Children")] 
    public Category Parent { get; set; } 

    [InverseProperty("Parent")] 
    [ForeignKey("ParentId")] 
    public virtual ICollection<Category> Children { get; set; } 
} 

Und ich will -as coded- in beiden Seiten Navigationseigenschaften haben, aber das funktioniert nicht. Es gibt ein Problem in Kinder Eigentum.

Immer, wenn ich Kategorien vom DbContext Abfrage erhalte ich:

Objektverweis nicht auf eine Instanz eines Objekts

(Ich habe versucht, mit und ohne [InverseProperty])

Irgendwelche Tipps? Dank ...

EDIT

Es tut mir leid, ich habe das Problem in einer anderen Navigationseigenschaft in dieser Entität ist, die ich nicht oben in der Codeliste habe. Die Frage macht jetzt keinen Sinn und ich habe es gelöscht, aber danke @TanguyB und @Pavel Bory für Hilfe.

Antwort

0

Haben Sie versucht, die ICollection in einem Konstruktor in Ihrer Klasse zu initialisieren. Ich hatte auch einige Probleme damit und das hat es für mich behoben.

+0

Ich habe gerade versucht, aber hat nicht funktioniert! – Hashem

+0

Danke @TanguyB, lies meine Bearbeitung :) – Hashem

+0

@Hashem Kein Problem, froh, dass du es gelöst hast! – TanguyB

0

Sind Sie sicher, dass Sie keine beschädigten/inkonsistenten Daten in Ihrer Datenbank haben? Weil ich versucht habe, dieselbe Klasse der Model-Klasse zu implementieren wie du und es funktioniert. Ich habe versucht, Instanzen von Kategorien zu erstellen und sie zu verknüpfen und sie dann von der Datenbank neu zu laden, und es funktioniert. Versuchen Sie, Daten aus der Datenbank zu löschen, und versuchen Sie es erneut. Wenn das Problem auch danach auftritt, können Sie Ihren Codebeispiel für die DbContext-Klasse und den Codeabschnitt posten, wo verwenden Sie ihn?

+0

Danke @Pavel Bory, lies meine Bearbeitung :) – Hashem