Frage

Ich sehe es gibt zwei Hauptoptionen für Transaktionen mit LLBLGen verwalten.

Methode 1:

using(DataAccessAdapter adapter = new DataAccessAdapter())
{
    adapter.StartTransaction(IsolationLevel.ReadCommitted, "TR");
    try
    {
        // ...
        adapter.Commit();
    }
    catch
    {
        adapter.Rollback();
        throw;
    }
}

Methode 2:

using(TransactionScope scope = new TransactionScope())
{
    // ...
    scope.Complete();
}

Was ist Ihre bevorzugte Methode und warum? (Ich verwende adapapter / 2.6 .net / 3.5)

War es hilfreich?

Lösung

Ich würde zuneigen Transaction mit für Verwaltung von Transaktionen, wie das ist, was es für während des DataAccessAdapter entworfen wurde, während es die Fähigkeit, Transaktionen zu schaffen, hat ist in erster Linie für Data Access.

Um zu versuchen, und zu sein ein wenig klarer, Sie Transaction nutzen könnten mehrere Transaktionen über mehrere DataAccessAdapters zu verwalten, während ein einzelner DataAccessAdapter einen bestimmten Bereich zu haben scheint.

Zum Beispiel:

using(TransactionScope ts = new TransactionScope())
{
    using(DataAccessAdapter d1 = new DataAccessAdapter())
    {
        //do some data access stuff
    }
    using(DataAccessAdapter d2 = new DataAccessAdapter())
    {
        //do some other data access stuff  
    }
    ts.complete();
}

Eine weitere Randnotiz ist, dass Transaction ist Thread-sicher, wo, wie Dataadapter nicht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top