可以在单个TransactionScope中使用多个实体框架数据上下文吗?

时间:2013-12-14 00:56:05

标签: c# .net entity-framework transactionscope

我正在尝试使用{}在TransactionScope中使用多个EntityFramework 6 DataContexts。

我得到以下例外

  

mscorlib.dll中出现'System.Data.Entity.Core.EntityException'类型的第一次机会异常

     

其他信息:基础提供商在Open上失败。

内部异常1

  

已禁用分布式事务管理器(MSDTC)的网络访问。

     

请使用“组件服务管理”工具在MSDTC的安全配置中启用DTC以进行网络访问。

内部异常2

  

事务管理器已禁用其对远程/网络事务的支持。

     

(HRESULT的异常:0x8004D024)

没有TransactionScope,代码可以正常工作。

以下是我需要回答的问题:

将事务应用于同时使用的两个datacontexts的最佳方法是什么?我做错了什么?

1 个答案:

答案 0 :(得分:1)

不是EF阻止你,而是DTC。使用两个或多个同时连接到MSSQL时需要DTC。

请参阅http://msdn.microsoft.com/en-us/library/dd327979.aspx

PS。重复MSDTC issue with transactions in ADO.NET Entity Framework