LINQ to SQL中的TransactionScope与事务

LINQ to SQL中的经典事务处理模式之间有什么区别:

using(var context = Domain.Instance.GetContext())

{

try

{

context.Connection.Open();

context.Transaction = context.Connection.BeginTransaction();

/*code*/

context.Transaction.Commit();

}

catch

{

context.Transaction.Rollback();

}

}

与TransactionScope对象

using (var context = Domain.Instance.GetContext())

using (var scope = new TransactionScope())

{

try

{

/*code*/

scope.Complete();

}

catch

{

}

}

回答:

Linq2SQL将使用隐式事务。如果所有更新都在一个Submit中完成,则您可能不需要自己处理事务。

从文档(重点是我的):

调用SubmitChanges时,LINQ to

SQL会检查该调用是否在事务范围内,或者是否将Transaction属性(IDbTransaction)设置为用户启动的本地事务。

成功完成所有SQL命令后,LINQ to SQL提交本地事务并返回。

以上是 LINQ to SQL中的TransactionScope与事务 的全部内容, 来源链接: utcz.com/qa/416683.html

回到顶部