我试图用实体框架4实现一个事务。据我所读,下面的代码是正确的。SaveChanges工作正常,但当我第一次调用ExecuteFunction时,就会得到以下异常:
基础提供程序
在打开时失败。- System.Transactions.TransactionManagerCommunicationException:网络访问分布式事务管理器(MSDTC)已被禁用.请使用组件服务管理工具在MSDTC的安全配置中启用用于网络访问的DTC。
我已经登录到数据库服务器,我没有看到一个名为分布式事务管理器()的服务,但是我确实看到了分布式事务协调器,并且它已经启动。我不知道我需要改变什么才能让它起作用。有人知道吗?谢谢。
这是密码。
using (var h = new WhaleEntities(ConnectionHelper.DBConnectString))
{
using (TransactionScope ts = new TransactionScope())
{
h.Sites.AddObject(s);
h.SaveChanges(SaveOptions.DetectChangesBeforeSave);
retval = s.SiteID;
h.ExecuteFunction("UpdateSiteInterfaceList", new ObjectParameter("pSiteID", retval), new ObjectParameter("pList", "10"));
h.ExecuteFunction("UpdateSiteInterfaceRequiredList", new ObjectParameter("pSiteID", retval),new ObjectParameter("pList", "Email"));
h.ExecuteFunction("UpdateSiteInterfaceAlwaysShownList", new ObjectParameter("pSiteID", retval),new ObjectParameter("pList", "10"));
h.ExecuteFunction("UpdateSiteInterfaceAlwaysRequiredList",new ObjectParameter("pSiteID", retval),new ObjectParameter("pList", "Email"));
ts.Complete();
//changes must be accepted manually once transaction succeeds.
h.AcceptAllChanges();
}
}发布于 2010-09-29 13:12:55
https://stackoverflow.com/questions/3821689
复制相似问题