Ich habe eine einfache Anforderung (so dachte ich ...!)Nutzung von Self-Tracking-Einheiten in ASP.NET über mehrere Beiträge
ich ein Modell, das von Ordnung, Orderline, Produkt besteht.
Ich möchte einen Auftrag erstellen und OrderLines (jede OrderLine für ein Produkt) hinzufügen. Ich erstelle den Auftrag und füge neue OrderLines hinzu. Zwischen Posts speichere ich die Order-Entität in Session (oder ViewState). Nur damit Sie wissen, ich habe Unterstützung für die binäre Serialisierung hinzugefügt, die gut funktioniert.
Die Beziehung ist daher Auftrag> AuftragLinie (n)> Produkt (e).
Möglicherweise haben Sie bereits erraten, was das Problem ist - dass ich bei SaveChanges() das übliche 'AcceptChanges kann nicht fortgesetzt werden, weil die Schlüsselwerte des Objekts mit einem anderen Objekt im ObjectStateManager in Konflikt stehen.' Error.
Ich habe auf eine Reihe von Artikeln online verwiesen, aber keiner scheint diesen Fall zu behandeln (wo ich die Beziehung zwischen mehr als zwei Entitäten habe), z. http://blogs.msdn.com/b/diego/archive/2010/10/06/self-tracking-entities-applychanges-and-duplicate-entities.aspx.
Dies muss sicherlich eine sehr häufige Anforderung sein? Gibt es jemanden da draußen, der dasselbe mit Entity Framework macht (und ohne DTOs usw. zu verwenden)?
Prost - Hilfe! :)
Nick
was meinst du "über mehrere Beiträge"? Ist das eine Webanwendung? Wenn dies der Fall ist, brauchen Sie keine Self-Tracking-Entitäten, und Sie sollten sie nicht in der Sitzung speichern. Sie sollten die Staatenlosigkeit des Webs respektieren. STE ist für Multi-Tier-Anwendungen (z. B. WCF -> Silverlight zum Beispiel) – RPM1984
Danke. Nun ja, das ist eine Webanwendung und ich meine über Seitenanforderungen. Ich möchte die EF-generierte Order-Entität verwenden, um den Auftrag zu erstellen (Hinzufügen von Auftragspositionen, Notizen usw.). Warum sollte ich nicht? Wie sonst sollte ich das tun - indem ich meine eigene 'Order'-Entity (Klasse) erstelle, damit arbeite und dann beim Speichern eine neue EF Order Entity kopiert? Scheint viel zusätzliche Arbeit, wenn man bedenkt, dass ich eine fertige Klasse habe, die die Assoziationen usw. versteht. Was würden Sie in diesem Fall vorschlagen? (Ich schätze, dass die Verwendung von STEs möglicherweise nicht angemessen ist) –