Ich habe ein Entity Framework Code erstes Objekt mit einem selbst referenzierenden Schlüssel. Die untergeordneten Datensätze verfügen nicht über die übergeordnete ID im selbst referenzierenden Schlüssel, wenn die Daten in die Datenbank geschrieben werden.Entity Framework selbst referenzierenden Schlüssel nicht in die Datenbank schreiben
Das Objekt hat viele weitere Eigenschaften als oben, aber ich habe für das Beispiel vereinfacht. Das ist keine viel zu viele Beziehung. Jeder Vertrag hat nur einen Elternteil, abgesehen von Rahmenverträgen ohne Eltern.
Wenn ich der Vertragsliste einen Untervertrag hinzufüge und SaveChanges für den DBContext aufruft, werden der Vertrag und der Untervertrag in die Datenbank geschrieben, wobei alle Felder korrekt sind. Abgesehen von dem Entity-Framework-generierten Feld Contract_Id, das null ist.
Ich habe ähnliche selbstreferenzierende Schlüssel, die korrekt mit anderen Klassen funktionieren, tatsächlich hat der Vertrag diese Klassen als Eigenschaften. Diese anderen Klassen funktionieren alle wie erwartet, wobei die selbstreferenzierenden Schlüssel angeben, dass das übergeordnete Objekt alle korrekt ausgefüllt ist.
Ich habe eine sehr einfache Testklasse wie oben nur mit Test vor dem Klassennamen erstellt und das funktioniert ordnungsgemäß erstellt. Ich habe einen einfachen Test mit meiner Contract-Klasse erstellt, der nicht richtig funktioniert.
Was ich gerne in der Lage wäre zu debuggen die Entity Framework SaveChanges-Methode, aber ich bin mir nicht sicher, ob das möglich ist.
Hat jemand eine Idee was zu suchen in Bezug auf was ich falsch gemacht habe oder wie man das debuggt?
Mögliche Duplikat [Self- referenzierender rekursiver Beziehungscode von vielen zu vielen Entity Framework] (http://stackoverflow.com/questions/5125052/self-referencing-many-to-many-recursive-relationship-code-first-entity-framework) –
@ BassamAlugili Dies ist keine Beziehung von vielen zu vielen. –
Ich habe diesen Ansatz mit anderen Klassen arbeiten. Das Entitätsframework erstellt ein nullbares -Feld in der Datenbank, das die ID des übergeordneten Datensatzes enthält. Es ist diese spezielle Klasse, bei der der Ansatz nicht funktioniert. –