gpt4 book ai didi

c# - LLBLGen - TransactionScope 或 DataAccessAdapter.StartTransaction

转载 作者:太空宇宙 更新时间:2023-11-03 14:36:29 25 4
gpt4 key购买 nike

我看到使用 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 则不是。

关于c# - LLBLGen - TransactionScope 或 DataAccessAdapter.StartTransaction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/804275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com