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

方法1:

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

方法2:

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

您最喜欢的方法是什么?为什么? (我正在使用adapapter / 2.6 .net / 3.5)

有帮助吗?

解决方案

我倾向于使用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则不是。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top