Wie behandelt Entity Framework Transaktionen?

8

Verwendet Entity Framework eine Transaktion für den Aufruf von SaveChanges in Ihrem Kontext? Gibt es eine Möglichkeit, Transaktionen vollständig zu deaktivieren oder eine bestimmte Entität von einer Transaktion auszuschließen?

%Vor%     
Dismissile 24.02.2011, 22:14
quelle

2 Antworten

7

Ja , EF4 erstellt eine neue Transaktion, falls noch keine vorhanden ist. Siehe

Ссылка

  

Wenn Sie SaveChanges aufrufen, wenn a   aktuelle Transaktion existiert, die Entität   Framework verwendet diese Transaktion für   Operationen gegen die Datenquelle.   Sonst schafft es ein neues   Transaktion für die Operation. Sie können   Definieren Sie Transaktionen mit   EntityTransaction, Transaktion oder   TransactionScope.

Nein , es gibt keine Möglichkeit, eine einzelne Entität von der Transaktion auszunehmen.

Ich bin mir nicht sicher über Ihre dritte Frage - ob Sie die Transaktionen komplett abschalten können, aber ich vermute, dass sie nicht auf dem obigen Auszug basieren.

Ich weiß, dass dies nicht die Antwort ist, die Sie hören wollten, aber wenn Sie möchten, dass P2 unabhängig davon speichert, ob P1 erfolgreich ist, müssten Sie P2 in einen anderen Objektkontext speichern.

    
Adam Rackis 24.02.2011, 22:40
quelle
1

Zur neuesten Frage nach dem Abschalten der Transaktionen.
Versuchen Sie, TransactionScope mit Suppress TransactionScopeOption zu erstellen, um die Transaktionen für den Code vollständig zu deaktivieren Block. Werfen Sie einen Blick auf diesen Thread für weitere Informationen .

    
Devart 25.02.2011 09:12
quelle