随笔关于Linq to Sql Transaction

正在听郭德纲相声,同事突然问用Linq to Sql 怎么实现一个Transaction,当时随口说了一句“如果SQL语句比较复杂就用一个存储过程实现吧“。
以前也多少了解过Linq to Sql,也简单的执行一此数据库操作,但对Linq to Sql中的Transaction还真没有研究过,随口又说一句“我帮你查查,我最爱干这事了”。
以下是查询结果:
---------------------
不管你是由我的書中,或是MSDN、網站處得知,LINQ to SQL之DataContext於SubmitChanges函式執行時,就算不指定Transaction,DataContext都會自動啟動一個Transaction,在許多ORM中,這算是相當常見的設計。
 不過,如果我不想要這個預設的Transaction呢?原因有很多,可能是為了減少Lock的時間,或是效能、資源等等,反正就是不想要這個預設行為就是了!只要簡簡單單的更新資料就好了。
 可能嗎?就目前的LINQ To SQL設計來說,這個行為是強制性的,且無可調整之空間,但!若要強渡關山也不是沒交通工具,DataContext開了一個小口,讓我們可以覆載SubmitChanges函式,以此為起點,我利用了大量的Reflection技巧,讓Transaction消失。
本段来自CSDN博客,转载请标明出处:http://blog.csdn.net/Code6421/archive/2008/05/22/2469460.aspx

以上来自黄忠诚老师的Blog,说明Linq to Sql中的 Transaction中默认的,即当你执行一个操作时会自己启动一个Transction。同时文章中也给出了如何禁止这一行为的方法,受益非浅!

原文地址:https://www.cnblogs.com/wservices/p/1583923.html