Question

Je vois qu'il existe deux options principales pour la gestion des transactions avec llblgen.

Méthode 1:

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

Méthode 2:

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

Quelle est votre méthode préférée et pourquoi? (J'utilise l'adapapter / 2.6 .net / 3.5)

Était-ce utile?

La solution

Je préférerais utiliser TransactionScope pour gérer les transactions, car c’est pour cela qu’il a été conçu alors que DataAccessAdapter, bien qu’il ait la capacité de créer des transactions, est conçu principalement pour DataAccess.

Pour être un peu plus clair, vous pouvez utiliser TransactionScope pour gérer plusieurs transactions sur plusieurs DataAccessAdapters alors qu’un seul DataAccessAdapter semble avoir une portée spécifique.

Par exemple:

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();
}

Une autre remarque est que TransactionScope est thread-safe, contrairement aux DataAdapters.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top