保持重典的风格,先看一下最终的效果.

前言

这事吧,还得从Linq to Sql说起

近乎所有的Linq to SQL的查询中总是免不了exec sp_reset_connection 与Audit Logout(就 是数据库连接)

这一进一出,费时太多,于是近半年来每个月总有那么几天来研究它

网上呢,解决方案不是没有

using (TransactionScope ts = new TransactionScope())
{
//一堆Linq to Sql or Linq to Entities,重典语
}
不过这个经过无数次的使用发现,CUD它的确可以将 生成的SQL事务执行,但也不是完全.

而且在Select时它几乎就是不起作用,一对对的exec sp_reset_connection和Audit Logout,快把我B疯了

 

正解

正确解决方法如下

var DB=new XXContext();
DB.Connection.Open();
using (var ts = DB.Connection.BeginTransaction()) {
//一堆Sql to Entities,重典语
}
DB.Connection.Close();//是否必写写未实验

这一下就爽了,原本支离破碎的SQL事务一气和成

其实也可以写一个自定义实现了IDisposable的类,使Open() Close()也省了.

这回爽了

其它

另:有的时候我们要使用直接使用Sql来进行CUD(没R)也就是用传统的Command来操作

在EF中如何才能使你的操作与EF的Sql to Entities在同一事务中呢,其实这样即可:

cmd.Connection=(DB.Connection as EntityConnection).StoreConnection;

这样就可让二者使用共同 的Connection了.

 
 

转载于:https://www.cnblogs.com/chsword/archive/2008/09/24/ef_Transaction.html

Linq to Entities in Ado.net EF的事务相关推荐

  1. ADO.Net Entity Framework Linq To Entities 语法功能汇编

    Linq To Entities 的语法基础可以参考: Microsoft Language Integrated Query (LINQ) 从入门到精通 1.使用ObjectQuery类的ToTra ...

  2. Entity Framework 4 in Action读书笔记——第四章:使用LINQ to Entities查询:执行手动查询...

    4.8 执行手动查询 有很多原因决定你会手动写查询.或许由EF生成的SQL太慢,又或许执行起来浪费了太多资源.另一种情况可能是当你动态生成一个如此复杂的查询,创建SQL代码比使用LINQ to Ent ...

  3. (转)LINQ to Entities 多条件动态查询

    原文地址:http://blogs.msdn.com/b/meek/archive/2008/05/02/linq-to-entities-combining-predicates.aspx Some ...

  4. Entity Framework 4 in Action读书笔记——第四章:使用LINQ to Entities查询:使用函数...

    4.7 使用函数 扩展LINQ to Entities查询的简便方法就是使用函数.有四种类型的函数可以应用: 规范函数-LINQ to Entities本身没有提供的一组预定义的函数. 数据库函数-一 ...

  5. What is the difference between LINQ to SQL and LINQ to Entities?

    The ability to query relational stores other than the Microsoft SQL Server family of products. What ...

  6. C#_LINQ(LINQ to Entities)

    LINQ to Entities 是 LINQ 中最吸引人的部分.它让你可以使用标准的 C# 对象与数据库的结构和数据打交道.使用 LINQ to Entities 时,LINQ 查询在后台转换为 S ...

  7. Entity Framework 4 in Action读书笔记——第四章:使用LINQ to Entities查询:预先加载和延迟加载...

    4.9 加载(Fetching) 预先加载指在一个查询中加载所有的实体和关联的数据.延迟加载指使用时再加载关联的实体.预先加载是检索数据最高效的方法.尽管它从数据库中检索所有的数据,但是只访问一次数据 ...

  8. LINQ to Entities

    业务场景 EF 不同的数据类型来转换 错误示例1 LINQ to Entities does not recognize the method 'System.Decimal ToDecimal(Sy ...

  9. LINQ to Entities 不识别方法“System.String ToString()”,因此该方法无法转换为存储表达式。...

    var data = DataSource.Skip(iDisplayStart).Take(iDisplayLength).Select(o => new{MatNR = o.MatNR,Ma ...

最新文章

  1. python画双折线图-Python Pandas 时间序列双轴折线图
  2. H3C SecPath防火墙GRE+IPSEC+OSPF典型配置举例
  3. html为何转换为json,将HTML元素的“样式”属性转换为JSON
  4. java xml转换xsd,将java类转换成xsd文件
  5. 九大内置对象及其常用方法
  6. 五月,温暖,风带着花香沁人心脾,独坐窗前
  7. 知乎高赞:电气工程专业学生的最好归宿在哪里?
  8. Git内部原理之深入解析环境变量
  9. iOS拍照识别车牌技
  10. 风变编程学习笔记0-3关【纯代码版】
  11. java des ecb_java版DES加密解密(ECB模式)已测试。可以正常使用。 | 学步园
  12. FFT(傅里叶快速变换,详细讲解+推导) 每日一遍,算法再见!
  13. geekbench5 cpu排名 202009
  14. 关于与kafka的爱恨交织
  15. freeswitch对接ims
  16. 怎样编写质量手册(转载)
  17. html设置阻止网页在google浏览器中打开时弹出自动翻译框
  18. 一星级挑战:06 切蛋糕
  19. 游戏本天梯_实况足球手游国服5月天梯胜率榜+极品补丁一枚
  20. 通过例子学TLA+(十)--集合

热门文章

  1. python语言入门p-MicropPython的学习,如何从0到1?
  2. 用python画猫咪怎么画-使用Python的turtle画小猫咪
  3. python读取中文文件报错-Python3 解决读取中文文件txt编码的问题
  4. 想学python有什么用-python学来有什么用
  5. python快速入门 pdf-Python快速入门PDF高清完整版本下载
  6. python语言自学-如何自学python语言
  7. python教程实例-Python中函数的用法实例教程
  8. java和python的比较-Python和Java就业前景对比
  9. python urllib.request 爬虫 数据处理-python爬虫 urllib模块url编码处理
  10. ssh连接服务器出现:ssh: connect to host 192.168.1.107 port 22: Connection refused 的解决方法