我有一個應用程序保存到數據庫(使用實體框架),並保存文檔到Sharepoint在一次保存。我正在嘗試在TransactionScope中使用MSDTC。提供商失敗使用MSDTC與實體框架
我的EF插入邏輯的一部分包括將外鍵列表傳遞給數據層。該圖層從數據庫中檢索「外鍵」對象,然後將其添加到主對象。奇怪的是,這對於第一個外鍵的項目是正確的,但是在下面的消息中失敗了。
System.Data.EntityException:底層提供程序在打開時失敗。 ---> System.Transactions.TransactionManagerCommunicationException:分佈式事務管理器(MSDTC)的網絡訪問已禁用 。請使用組件服務管理 工具爲MSDTC配置安全 配置中的DTC以啓用網絡訪問。
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中的關係嗎?