Wie verwende ich Transaction in EntityFramework 5?

9

Ich möchte eine Tabelle gleichzeitig übertragen. Wenn man keinen Erfolg hat, muss alles rolback sein.

So ungefähr:

%Vor%

Aber das Problem ist, ich weiß nicht, wie Transaktion dafür verwenden.

Ich versuche das:

%Vor%

Das Problem hier: tr.Commit(); und die Ausnahme sagen mir:

%Vor%

Und die tr.Rollback(); werfen eine Ausnahme auf. Die Ausnahme ist:

%Vor%

Das wirklich funy Ding ist, der Tisch truncate ist Erfolg. Was? Der Kommit ist die Ausnahme zum Werfen. und es kann Erfolg sein? Ich kann es nicht verstehen.

Bitte teilen Sie mir mit, was gerade läuft. Wenn du mir eine Lösung gibst, ist das sogar noch besser.

    
qakmak 13.12.2012, 16:11
quelle

2 Antworten

19

Versuchen Sie, Ihren Code mit

zu kapseln %Vor%

Wenn eine Ausnahme auftritt, wird scope.Complete () nicht aufgerufen und das Rollback erfolgt automatisch.

BEARBEITEN: Ich habe gerade Ihr MySql-Tag gesehen. Wenn dies nicht funktioniert, schauen Sie hier !

    
JYL 13.12.2012, 16:16
quelle
2

Versuche das, Technisch gesehen sollte die Verwendung die Transaktion festschreiben, wenn keine Ausnahmen vorhanden sind, aber im Falle einer Ausnahme wird die Verwendung automatisch zurückgesetzt.

%Vor%     
humblelistener 13.12.2012 16:17
quelle