Linq2SQL:交易涵盖的SubmitChanges?

时间:2009-09-17 11:19:38

标签: c# linq-to-sql transactions

MyDataContext context = new MyDataContext();

// do a lot of insert, deletes and updates

context.SubmitChanges(); 

SubmitChanged()生成和执行的所有SQL是否都会被事务覆盖?如何确保交易涵盖了它?

更新:

我之所以要求我有一个奇怪的错误,我怀疑某项交易尚未使用。

该过程约有500个插入,并在一条记录上进行最终更新。有时更新(可能还有一些插入...)未在数据库中注册。

(我的调试输出中没有显示SQL Transactions?)

3 个答案:

答案 0 :(得分:4)

它是,如果它失败,整个事情将会回滚

How to: Submit Changes to the Database (LINQ to SQL)

答案 1 :(得分:3)

如果您希望在事务中发生所有事情,请使用事务范围

http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.aspx

答案 2 :(得分:2)

只有在多次调用SubmitChanges并希望将所有调用包含在一个事务中时,才需要显式创建TransactionScope。