linq to sql:我需要显式创建一个事务吗?

时间:2011-12-27 18:09:06

标签: linq-to-sql transactions

每当我需要在L2S工作时执行多个查询时,我正在使用TransactionScope显式创建事务。今天我的同事告诉我,他从不手动创建交易,因为L2S在SubmitChanges级别执行。我很困惑,所以我做了一些示例代码来测试它。在我看来,我理解结果 - 他是对的。 我的问题是,它是从linq开始到sql还是在某些.net版本/服务包中添加? 在网上,有很多关于如何使用TransactionScope和L2S的样本,所以我不确定,这些人中的每一个都可能错过它吗?

2 个答案:

答案 0 :(得分:1)

只要您完成所有更改,然后一次调用SubmitChanges(),系统就会自动创建一个事务。

您需要担心TransactionScope的唯一时间是您多次拨打SubmitChanges()或需要跨多个情境的交易。

答案 1 :(得分:0)

如果要在单个事务中包装多个查询和多次调用SaveChanges,那么显式TransactionScope确实有价值......但是如果要保存一个对象图(它将为数据库生成多个插入/更新语句),所有调用SaveChanges时,这些语句将自动包装在一个Transaction中。