Verwenden des Entitätsframeworks zum Hinzufügen vorhandener Entitäten zu einer Sammlung in einer neu erstellten Entität

8

Ich verwende das Entity-Framework, um eine neue Bestellung zu erstellen. Die Bestellung enthält eine Sammlung von Kontakten, eine Viele-zu-Viele-Beziehung. Ich möchte einen Verweis auf einen vorhandenen Kontakt in der Bestellung bei der Erstellung des Auftrags hinzufügen. Sowohl Order als auch Contact a Entity Objects.

%Vor%

Wenn ich zum Anhängen gehe, wird diese Ausnahme ausgelöst:

"Anhängen ist kein gültiger Vorgang, wenn das mit diesem verwandten Ende verknüpfte Quellobjekt in einem hinzugefügten, gelöschten oder gelöschten Zustand vorliegt. Objekte, die mit der NoTracking-Zusammenführungsoption geladen werden, sind immer getrennt."

Ich weiß, dass ich wahrscheinlich einen Schritt verpasse oder nicht vollständig verstehe, wie das Entitätsframework Viele-zu-Viele-Beziehungen behandelt.

    
kirkmcpherson 02.01.2009, 18:56
quelle

2 Antworten

5

"Anhängen" ist nicht erlaubt, weil Sie die Bestellung noch nicht gespeichert haben. Durch den Aufruf von "Hinzufügen" wird Entity Framework mitgeteilt, dass Sie einen neuen Kontakt einfügen möchten. Sie haben also nur eine Option. Sie müssen den Kontakt laden.

Hier ist der schnellste Weg:

%Vor%     
Michael L Perry 16.12.2009 05:16
quelle
3

Wenn Auftrag eine Eigenschaft Kontakt hat, können Sie Folgendes tun:

%Vor%

Ich würde vorschlagen, die Eigenschaft Contact s anstelle von Contact zu erstellen.

    
Craig Stuntz 05.01.2009 15:48
quelle