Entity Framework - Verweis auf untergeordnetes Objekt hinzufügen, ohne die gesamte Objektliste abzurufen?

9

Ich habe ein Elternobjekt mit der Eigenschaft childs, die selbst ein Sammlungsobjekt ist. dh. Parent.Childs Ich zeige dieses EF-Objekt über WCF an. Anders gesagt, Eltern können mehrere Kinder haben, wie im Fall von Rechnung (Eltern) und LineItems (Kinder).

Client-Seite Wie referenziere ich ein untergeordnetes Objekt und füge es zur Childs-Auflistung hinzu, ohne den Dienst zu durchlaufen und die gesamte Liste der untergeordneten Elemente abzurufen und manuell Parent.Childs.Add (untergeordnet) für jedes untergeordnete Objekt festzulegen / p>

Ich möchte etwas wie Parent.Childs = new Childs () {neues Kind {childId = 1}, neues Kind {childId = 2}}; und dann, wenn ich Parent an Server sende, weiß der Server, dass ein Kind mit id = 1 und id = 2 bereits existiert und es einhakt. Ich bin sicher, dass es weg ist.

Ich habe über die EntityKey-Eigenschaft gelesen, aber meine Objektclientseite hat diese Eigenschaft überhaupt nicht.

Danke

    
David 08.12.2010, 15:48
quelle

2 Antworten

5
%Vor%     
Craig Stuntz 08.12.2010, 20:30
quelle
0

Der Server weiß nicht, ob die Entität existiert, bis sie aus der Datenbank geladen wird. Wenn Sie also childs auf dem Client hinzufügen und sie an den Server senden, müssen Sie auch Informationen zu neuen childs, aktualisierten childs und gelöschten childs hinzufügen. Wenn Sie solche Informationen nicht angeben, müssen Sie zuerst das vollständige Entitätsdiagramm aus der Datenbank laden und dann das empfangene Diagramm mit dem geladenen Diagramm vergleichen und die Änderungen manuell bearbeiten.

Automatische Lösung für einen solchen Fall können Self-Tracking-Entitäten (STEs) sein, aber Ihr Beispiel wird nicht funktionieren. STEs erfordern, dass Sie Objekte laden, sie an den Client senden, sie modifizieren und zurücksenden. STEs verfolgt alle Änderungen.

    
Ladislav Mrnka 08.12.2010 19:58
quelle

Tags und Links