2009-05-07 9 views
1

Ich brauche 2 Anrufe, um sicherzustellen, werden in einer Transaktion eingetragenTransaktionsbereich Attribut in VB.NET

 
Sub InsertOrder(order) 

...insert order header SQL 

....insert order items SQL (LOOP) 

End Sub 

Ich bin bewusst, dass ich dies über einen Transaktionsbereich erreichen kann, ist jedoch nicht, dass es ein „Attribut“ dafür verfügbar?

 
Transaction.Scope()>_ 
Public Sub InsertOrder(order) 

End Sub 

Antwort

2

Es gibt ein .NET-Attribut, das für Transaktionen verwendet werden kann. Es ist jedoch eher für verteilte Transaktionen über mehrere Datenquellen gedacht, die eine zweiphasige Festschreibung erfordern. Die Attribute sind Teil des Systems 'Enterprise Services Transaction'.

Die "klassische" Möglichkeit, eine SQL-Transaktion zu verwalten, war der Aufruf der BeginTransaction() -, Commit() - und Rollback() -Methoden des SqlConnection-Objekts.

Es gibt auch das System.Transactions-Modell, das auf der 'using'-Anweisung und einem TransactionScope-Objekt basiert, das Sie erwähnt haben.

Eine klare Zusammenfassung der verschiedenen Optionen finden Sie unter .