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