Verwenden von EF 4.1 Einfügen eines übergeordneten Datensatzes und mehrerer untergeordneter Datensätze als einzelne "Arbeitseinheit"

8

Ich übe mit einem Code-First-Set von Klassen mit einer Eltern-Kind-Beziehung zwischen ihnen.

%Vor%

In einer einfachen Konsolen-App erstelle ich einen Elternteil und erstelle zwei untergeordnete Datensätze und füge sie dem Elternteil hinzu. Wenn ich dann die SaveChanges () aufrufen, wird nur das erste Kind zur Child-Tabelle hinzugefügt.

%Vor%

Nun, das war nicht das, was ich wollte, also habe ich versucht, dann sowohl das Elternobjekt als auch das Kontextobjekt hinzuzufügen.

%Vor%

Dadurch wurden beide untergeordneten Datensätze in die Datenbank aufgenommen, aber nur einer von ihnen (der erste) wurde mit dem übergeordneten Datensatz verknüpft.

Zu guter Letzt habe ich nach jedem Aufruf von Parent.Add () versucht, SaveChanges () aufzurufen.

%Vor%

Aber das bricht meine Vorstellung davon, wie das "Unit of Work" -Muster funktioniert. I "Sollte SaveChanges () einmal aufrufen können und alle meine Änderungen stattfinden, richtig?

Also, was mache ich falsch?

    
saunderl 20.02.2012, 02:19
quelle

2 Antworten

6

Der folgende Codeabschnitt speichert einzelne Änderungen. Und verwenden Sie immer einen Transaktionsbereich, um in einem einzelnen Stapel zu speichern.

%Vor%     
VIJAY 20.02.2012, 02:31
quelle
2

Ich weiß nicht, warum Sie von EntityBase erben, da Sie erwähnt haben, dass Sie mit POCO Code First testen. Wie auch immer, ich habe folgenden Code mit Erfolg getestet

%Vor%     
Ray 20.02.2012 02:37
quelle

Tags und Links