2

我看到使用 llblgen 管理事务有两个主要选项。

方法一:

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

方法二:

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

你最喜欢的方法是什么,为什么?(我正在使用适配器/2.6 .net/3.5)

4

1 回答 1

1

我倾向于使用 TransactionScope 来管理事务,因为这是它的设计目的,而 DataAccessAdapter,虽然它具有创建事务的能力,但主要是为 DataAccess 设计的。

为了更清楚一点,您可以使用 TransactionScope 跨多个 DataAccessAdapter 管理多个事务,而单个 DataAccessAdapter 似乎具有特定范围。

例如:

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

另一个注意事项是 TransactionScope 是线程安全的,而 DataAdapter 不是。

于 2009-04-30T00:38:42.027 回答