2013-03-28 102 views
1

我們有一個使用Entity Framework 5創建,用於創建,編輯和刪除數據的系統,但是我們遇到的問題是有時EF太慢或者根本無法實現使用實體框架(根據參與數據庫中的某些組的用戶爲表創建數據的視圖等),並且我們不得不使用存儲過程來更新數據。實體框架和ADO.NET與工作單元模式

但是,我們已經陷入了一個問題,那就是我們必須將更改保存到EF中,以便將數據存入數據庫然後調用存儲過程,所以我們不能使用ITransactionScope,因爲它始終提升爲分佈式事務和/或在交易期間鎖定表格以供選擇。

我們還試圖引入一個DomainEvents模式,它會在保存更改後對事件進行排隊並將其引發,以便我們獲得數據庫中所需的數據,但最終可能會導致第一部分成功,第二部分失敗。

有沒有什麼好的方法可以解決這個問題,或者我們是否需要徹底擺脫這種情況下的EF呢?

回答

1

我有類似的情況。後來我把這個過程分解成小的過程,只使用EF,並且使每個小過程簡短。即使總體時間更長,但系統維護和擴展也更容易。另外我最小化連接,只更新實體本身,禁用EF的AutoDetectChangesEnabled和ValidateOnSaveEnabled。
有時候,如果你用不同的方式看你的問題,你可能有更好的解決方案。 祝你好運!