c# – ADO实体框架是否支持非DTC交易?一个EntityContext和一个TransactionScope内的多个查询导致DTC升级

c# – ADO实体框架是否支持非DTC交易?一个EntityContext和一个TransactionScope内的多个查询导致DTC升级,第1张

概述我有一个使用实体框架的Web应用程序 – 我们使用TransactionScope类来提供环境事务. 有没有办法告诉EF使用标准T-SQL事务优先于DTC事务?我们经常在一个EntityContext和一个TransactionScope实例中对不同的表进行大量查询,但是这似乎总是将事务提升到DTC 我举了一个简短的例子,见下文.对单个表的查询正确地启动了T-SQL事务,并且在连接SPID 54上 我有一个使用实体框架的Web应用程序 – 我们使用TransactionScope类来提供环境事务.

有没有办法告诉EF使用标准T-sql事务优先于DTC事务?我们经常在一个EntityContext和一个TransactionScope实例中对不同的表进行大量查询,但是这似乎总是将事务提升到DTC

我举了一个简短的例子,见下文.对单个表的查询正确地启动了T-sql事务,并且在连接SPID 54上
然后对ContactUs表进行查询,并且EF在不同的连接(SPID 53)上执行此 *** 作,该连接具有将事务提升到DTC事务的效果.**

using (MyEntitIEs DB = new MyEntitIEs()){    using (TransactionScope t = new TransactionScope())    {        DB.IndivIDual.First().EmailAddress = "bob" + DateTime.Now.Second.ToString() + "@bob.com"; // done on connection 54        DB.ContactUs.First(); // done on connection 53 thus promoting the transaction!!        DB.SaveChanges();        t.Complete();    }}
解决方法 >在连接字符串上设置EnList = false以避免在事务上自动登记.
>手动登记连接作为事务范围的参与者. (http://msdn.microsoft.com/en-us/library/ms172153%28v=VS.80%29.aspx) 总结

以上是内存溢出为你收集整理的c# – ADO实体框架是否支持非DTC交易?一个EntityContext和一个TransactionScope内的多个查询导致DTC升级全部内容,希望文章能够帮你解决c# – ADO实体框架是否支持非DTC交易?一个EntityContext和一个TransactionScope内的多个查询导致DTC升级所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1221480.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存