Sql server 2008 r2 EF6使用“中断”;“无法开始分布式事务”;

Sql server 2008 r2 EF6使用“中断”;“无法开始分布式事务”;,sql-server-2008-r2,entity-framework-6.1,Sql Server 2008 R2,Entity Framework 6.1,我在一台服务器上运行多个网站。这些站点访问本地数据库,并在数据库中调用链接服务器上的存储过程 除了一个正在运行EntityFramework6.1.1的网站外,所有网站都运行良好 调用完成后,我们得到错误:操作无法执行,因为链接服务器的OLE DB提供程序“SQLNCLI10”无法开始分布式事务。 此时运行的代码是使用.tt文件自动生成的 return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("procname",

我在一台服务器上运行多个网站。这些站点访问本地数据库,并在数据库中调用链接服务器上的存储过程

除了一个正在运行EntityFramework6.1.1的网站外,所有网站都运行良好

调用完成后,我们得到错误:
操作无法执行,因为链接服务器的OLE DB提供程序“SQLNCLI10”无法开始分布式事务。

此时运行的代码是使用.tt文件自动生成的

return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("procname", param1, param2, param3, param4);
如前所述,这在EF的旧版本中运行良好。(这不是MSDTC配置的问题。)

在这页()上,它说:

从EF6数据库开始。默认情况下,ExecuteSqlCommand()将在事务中包装该命令(如果还没有)。此方法的重载允许您根据需要重写此行为。同样在EF6中,通过API(如ObjectContext)执行模型中包含的存储过程。ExecuteFunction()也执行相同的操作(除了此时无法覆盖默认行为)


我卡住了吗?是否需要恢复到实体框架5?

我们最终将该项目恢复到实体框架5。可能的解决方案: