C#使用块上下文,在另一个使用块上下文中

时间:2011-09-09 20:20:22

标签: c# linq .net-4.0

我收到以下错误

  

分布式事务管理器(MSDTC)的网络访问已经完成   禁用。请在安全性中启用DTC以进行网络访问   使用组件服务管理的MSDTC配置   工具。

当我尝试执行以下操作时

using (DataOneContext context1 = new DataOneContext())
{
     code...

     using (DataTwoContext context2 = new DataTwoContext())
     {
          more code...
     }
}

当我将它们分开时,代码可以正常工作。但是为了让事情变得简单,一个人更容易在另一个人身上。有可能吗?

我想避免启用MSDTC。

DataOneContext和DataTwoContext是DBML文件中的表(抱歉,我不知道技术术语)。

每个上下文都连接到不同的服务器。

1 个答案:

答案 0 :(得分:2)

我认为你可以通过共享连接(假设相同的服务器)来做到这一点。当事务使用不同的连接时,事务会自动升级为分布式事务。

using (DataOneContext context1 = new DataOneContext()) 
{ 
     code... 

     using (DataTwoContext context2 = new DataTwoContext(context1.Connection)) 
     { 
         more code....
     } 
}