我看到使用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)
答案 0 :(得分: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则不是。