【发布时间】:2009-09-24 15:52:18
【问题描述】:
我有一个应用程序正在保存到数据库(使用实体框架)并在一次保存中将文档保存到 Sharepoint。我正在尝试将 MSDTC 与 TransactionScope 一起使用。
我的部分 EF 插入逻辑包括将外键列表传递给数据层。该层从数据库中检索“外键”对象,然后将其添加到主对象。奇怪的是,这对于第一个外键项目正常工作,但在第二个项目上失败并显示以下消息。
System.Data.EntityException:基础提供程序在打开时失败。 ---> System.Transactions.TransactionManagerCommunicationException:分布式事务管理器(MSDTC)的网络访问已被 禁用。请在安全中启用 DTC 以进行网络访问 使用组件服务管理配置 MSDTC 工具。
MSDTC 已启用并在第一次通过时工作,但不是第二次。我假设当我进行多个选择调用时,上下文会以某种方式变得混乱?
这是我的逻辑:
//Create new order
foreach(int lineItemId in lineItems)
{
//Retrieve the LineItem object from db
//Add the LineItem object to the Order
}
//Save using EF
也许我不应该从数据库中检索对象?我是否缺少一种在 EF 中引用关系的简单方法?
【问题讨论】:
标签: .net entity-framework msdtc distributed-computing