我看到使用 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();
}
您最喜欢的方法是什么?为什么? (我使用的是 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 则不是。
我是一名优秀的程序员,十分优秀!