Asp.net 实体框架激活其他数据库的触发器:错误

Asp.net 实体框架激活其他数据库的触发器:错误,asp.net,entity-framework,triggers,sql-server-2008-r2,Asp.net,Entity Framework,Triggers,Sql Server 2008 R2,我有一个ASP.NET web应用程序,它对SQL Server 2008 R2中的表进行了一些更改。 在这个表上有一个触发器,它对同一数据库服务器上另一个数据库中的另一个表进行更新 保存更改时,我出现以下错误: -错误消息:基础提供程序在提交时失败。 -InnerException:此SqlTransaction已完成;它不再可用 同时,允许数据库用户连接到其他数据库也不起作用 有人知道我是如何做到这一点的吗?触发器与实体框架无关 当对表进行更改时,无论更改来自何处,触发器都会触发 这可能是一

我有一个ASP.NET web应用程序,它对SQL Server 2008 R2中的表进行了一些更改。 在这个表上有一个触发器,它对同一数据库服务器上另一个数据库中的另一个表进行更新

保存更改时,我出现以下错误: -错误消息:基础提供程序在提交时失败。 -InnerException:此SqlTransaction已完成;它不再可用

同时,允许数据库用户连接到其他数据库也不起作用


有人知道我是如何做到这一点的吗?

触发器与实体框架无关

当对表进行更改时,无论更改来自何处,触发器都会触发

这可能是一个权限问题,系统正试图使用用于连接到第一个数据库的安全上下文对第二个数据库进行更改。如果触发器导致的更改失败,那么同一事务中的所有内容都将失败


由于您在一个事务中访问两个数据库,因此您使用的是MSDTC,请确保它已启动,并且您有权访问它。

步骤1-找到实施此触发器的人并伤害他们。触发器不应该访问外部资源(在本例中,另一个数据库是外部资源,即使它位于同一实例上)。保持数据库同步的最佳方法是什么?MS Sync framework或复制服务?如果是同步数据库,则可能会指示某种类型的复制。如果它正在更新/审计相关数据,您可能会考虑一些类似于Service Bug的内容。