我刚刚针对 SQL 2010 Express 本地数据库向使用 EF 4.3 Code First 的 MVC3 应用程序介绍了 TransactionScope 的使用。当我在范围内尝试 SaveChanges 时,收到“提供程序无法打开”通知,并出现有关缺少 MSDTC 的内部异常。据我所知,只有当我使用多个连接字符串时才会发生这种情况。我只使用过与一个数据库的连接,应用程序中只有 1 个字符串。不过,我确实使用了多个 DbContext 实例,但在事务范围内只使用了一个实例。
我可以做什么来解决这个问题?
最佳答案
不知道是否与这篇文章类似? How to run two Entity Framework Contexts inside TransactionScope without MSDTC?
解决方法是:
0) 创建可促销事务(取决于 SQL Server 版本?)( http://msdn.microsoft.com/en-us/library/ms172070.aspx )
1) Entity Framework – MSDTC Gotchya ( http://joeknowsdotnet.wordpress.com/2012/07/19/entity-framework-msdtc-gotchya/ )
2) 避免不必要的分布式事务升级 ( http://petermeinl.wordpress.com/2011/03/13/avoiding-unwanted-escalation-to-distributed-transactions/ )
关于.net - 为什么我的 TransactionScope 在 EF Code First 应用程序中使用时尝试使用 MSDTC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11451112/