pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

為什么 TransactionScope 不適用于實體框架?

Why doesn#39;t TransactionScope work with Entity Framework?(為什么 TransactionScope 不適用于實體框架?)
本文介紹了為什么 TransactionScope 不適用于實體框架?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

請看下面的代碼.如果我初始化多個實體上下文,那么我會在 僅第二組代碼 上得到以下異常.如果我注釋掉第二組就可以了.

See the code below. If I initialize more than one entity context, then I get the following exception on the 2nd set of code only. If I comment out the second set it works.

{"底層提供程序在打開時失敗."}

{"The underlying provider failed on Open."}

內部:{與底層事務管理器的通信失敗."}

Inner: {"Communication with the underlying transaction manager has failed."}

內部:{錯誤 HRESULT E_FAIL 已從對 COM 組件的調用返回."}

Inner: {"Error HRESULT E_FAIL has been returned from a call to a COM component."}

請注意,這是一個示例應用程序,我知道連續創建 2 個上下文沒有意義.但是,生產代碼確實有理由在同一個 TransactionScope 中創建多個上下文,并且這是無法更改的.

Note that this is a sample app and I know it doesn't make sense to create 2 contexts in a row. However, the production code does have reason to create multiple contexts in the same TransactionScope, and this cannot be changed.

編輯

這是我之前嘗試設置 MS-DTC 的一個問題.它似乎在服務器和客戶端上都啟用了.我不確定它是否設置正確.另請注意,我嘗試這樣做的原因之一是 TransactionScope 中的現有代碼使用 ADO.NET 和 Linq 2 Sql...我希望它們也使用相同的事務.(這聽起來可能很瘋狂,但如果可能的話,我需要讓它發揮作用).

Here is a previous question of me trying to set up MS-DTC. It seems to be enabled on both the server and the client. I'm not sure if it is set up correctly. Also note that one of the reasons I am trying to do this, is that existing code within the TransactionScope uses ADO.NET and Linq 2 Sql... I would like those to use the same transaction also. (That probably sounds crazy, but I need to make it work if possible).

如何在 C# 中使用 TransactionScope?

解決方案

Windows 防火墻阻止了與 MS-DTC 的連接.

using(TransactionScope ts = new System.Transactions.TransactionScope())
        {
                using (DatabaseEntityModel o = new DatabaseEntityModel())
                {
                    var v = (from s in o.Advertiser select s).First();
                    v.AcceptableLength = 1;
                    o.SaveChanges();
                }

                //-> By commenting out this section, it works
                using (DatabaseEntityModel o = new DatabaseEntityModel())
                {
                    //Exception on this next line
                    var v = (from s1 in o.Advertiser select s1).First();                         v.AcceptableLength = 1;
                    o.SaveChanges();
                }
                //->

                ts.Complete();
        }

推薦答案

由于某種原因,您的 MS-DTC(分布式事務協調器)無法正常工作.MS-DTC用于協調跨多個異構資源的事務結果,包括多個sql連接.

Your MS-DTC (Distributed transaction co-ordinator) is not working properly for some reason. MS-DTC is used to co-ordinate the results of transactions across multiple heterogeneous resources, including multiple sql connections.

看看此鏈接了解有關正在發生的事情的更多信息.

Take a look at this link for more info on what is happening.

基本上,如果您確保 MS-DTC 正在運行并且正常工作,那么使用 2 個 ADO.NET 連接應該沒有問題 - 無論它們是實體框架連接還是任何其他類型.

Basically if you make sure your MS-DTC is running and working properly you should have no problems with using 2 ADO.NET connections - whether they are entity framework connections or any other type.

這篇關于為什么 TransactionScope 不適用于實體框架?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

LINQ to SQL and Concurrency Issues(LINQ to SQL 和并發問題)
SQL Server 2005 Transaction Level and Stored Procedures(SQL Server 2005 事務級和存儲過程)
Yield return from a try/catch block(try/catch 塊的收益回報)
Should I call Parameters.Clear when reusing a SqlCommand with a transation?(重用帶有事務的 SqlCommand 時,我應該調用 Parameters.Clear 嗎?)
Does SqlTransaction need to have Dispose called?(SqlTransaction 是否需要調用 Dispose?)
Reason for System.Transactions.TransactionInDoubtException(System.Transactions.TransactionInDoubtException 的原因)
主站蜘蛛池模板: 青岛侦探_青岛侦探事务所_青岛劝退小三_青岛调查出轨取证公司_青岛婚外情取证-青岛探真调查事务所 | 智能风向风速仪,风速告警仪,数字温湿仪,综合气象仪(气象五要素)-上海风云气象仪器有限公司 | 医学模型生产厂家-显微手术模拟训练器-仿真手术模拟训练系统-北京医教科技 | 干法制粒机_智能干法制粒机_张家港市开创机械制造有限公司 | 国标白水泥,高标号白水泥,白水泥厂家-淄博华雪建材有限公司 | 净化车间_洁净厂房_净化公司_净化厂房_无尘室工程_洁净工程装修|改造|施工-深圳净化公司 | sfp光模块,高速万兆光模块工厂-性价比更高的光纤模块制造商-武汉恒泰通 | 医用酒精_84消毒液_碘伏消毒液等医用消毒液-漓峰消毒官网 | 长沙网站建设制作「网站优化推广」-网页设计公司-速马科技官网 | 线粒体膜电位荧光探针-细胞膜-标记二抗-上海复申生物科技有限公司 | 电脑知识|软件|系统|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网 | 成都热收缩包装机_袖口式膜包机_高速塑封机价格_全自动封切机器_大型套膜机厂家 | 产业规划_产业园区规划-产业投资选址及规划招商托管一体化服务商-中机院产业园区规划网 | 博博会2021_中国博物馆及相关产品与技术博览会【博博会】 | 昆明网络公司|云南网络公司|昆明网站建设公司|昆明网页设计|云南网站制作|新媒体运营公司|APP开发|小程序研发|尽在昆明奥远科技有限公司 | 小型铜米机-干式铜米机-杂线全自动铜米机-河南鑫世昌机械制造有限公司 | ERP企业管理系统永久免费版_在线ERP系统_OA办公_云版软件官网 | 熔体泵_熔体出料泵_高温熔体泵-郑州海科熔体泵有限公司 | 实体店商新零售|微赢|波后|波后合作|微赢集团 | 膏剂灌装旋盖机-眼药水灌装生产线-西林瓶粉剂分装机-南通博琅机械科技 | 浙江皓格药业有限公司| 泵阀展|阀门展|水泵展|流体机械展 -2025上海国际泵管阀展览会flowtech china | 深圳侦探联系方式_深圳小三调查取证公司_深圳小三分离机构 | 广州食堂承包_广州团餐配送_广州堂食餐饮服务公司 - 旺记餐饮 | 佛山商标注册_商标注册代理|专利注册申请_商标注册公司_鸿邦知识产权 | 解放卡车|出口|济南重汽|报价大全|山东三维商贸有限公司 | 原子吸收设备-国产分光光度计-光谱分光光度计-上海光谱仪器有限公司 | 强效碱性清洗剂-实验室中性清洗剂-食品级高纯氮气发生器-上海润榕科学器材有限公司 | 磁粉制动器|张力控制器|气胀轴|伺服纠偏控制器整套厂家--台灵机电官网 | 附着力促进剂-尼龙处理剂-PP处理剂-金属附着力处理剂-东莞市炅盛塑胶科技有限公司 | 广州网站建设_小程序开发_番禺网站建设_佛山网站建设_粤联网络 | 污水提升器,污水提升泵,污水提升装置-德国泽德(zehnder)水泵系统有限公司 | SMC-SMC电磁阀-日本SMC气缸-SMC气动元件展示网 | 依维柯自动挡房车,自行式国产改装房车,小型房车价格,中国十大房车品牌_南京拓锐斯特房车 - 南京拓锐斯特房车 | 凝胶成像仪,化学发光凝胶成像系统,凝胶成像分析系统-上海培清科技有限公司 | 哈希余氯测定仪,分光光度计,ph在线监测仪,浊度测定仪,试剂-上海京灿精密机械有限公司 | 酒糟烘干机-豆渣烘干机-薯渣烘干机-糟渣烘干设备厂家-焦作市真节能环保设备科技有限公司 | 丝杆升降机-不锈钢丝杆升降机-非标定制丝杆升降机厂家-山东鑫光减速机有限公司 | 电采暖锅炉_超低温空气源热泵_空气源热水器-鑫鲁禹电锅炉空气能热泵厂家 | 传递窗_超净|洁净工作台_高效过滤器-传递窗厂家广州梓净公司 | 自动化改造_智虎机器人_灌装机_贴标机-上海圣起包装机械 |