2011-09-16 202 views
1

我在我的項目中爲不同的實體提供了多個存儲庫,每個存儲庫都有自己的datacontext(它來自我的存儲庫的基類)。服務層和存儲庫性能問題

在我的服務層,有很多次業務邏輯要求我在多個存儲庫中添加/編輯對象(因此inturn使用不同的DataContext)。

因此,當我最終在多個存儲庫上執行.SaveContext。這似乎是一件壞事,理想情況下,我應該能夠在一個上下文中保存並且一個ado.net調用數據庫應該執行所有任務。

我在這裏做錯了什麼?

感謝

回答

5

你需要看使用Unit of Work pattern你的資料庫,因爲它允許你的多個存儲庫參加一個單一的邏輯事務。

網絡上有大量關於如何做到這一點的博客帖子,其中包括:

而且,這裏是一個good tutorial通過使用MVC和EF與工作+ Repository模式的單位走。

由於這是一個很好的圖解釋它是如何工作的;

enter image description here

+0

甜..感謝這麼多真棒的例子。我不知道這個模式的名稱,這正是我的架構所缺少的。現在,我實現了它在一個4小時的直接坐在..它是乾淨的哨子,更快! – MoXplod