2011-02-08 50 views
2

我想知道我應該在哪裏使用工作單元?爲什麼?我應該在哪裏使用工作單位?爲什麼?

  • 存儲庫級別?但是如果你需要2個倉庫呢?
  • 服務等級?但是如果你需要重用其他服務方法呢?
  • 控制器級別?但是如果你不想在你的控制器中放置任何邏輯呢?

想知道它最好的地方,應該使用。我使用類似的實現:

using (var uow = UnitOfWorkFactory.Create()) 
{ 
... transaction go here 
} 

(我使用ASP.NET MVC 3與實體框架)

感謝。

回答

4

工作單元允許您在多個存儲庫中執行多個操作,並一次爲所有人調用Save(),這會調用SaveChanges(),這會將工作單元轉換爲事務。如果在Save()調用期間發生任何錯誤,操作將回滾。

因此,在您需要的任何位置使用一個工作單元,以確保在數據交易過程中某些內容不會損壞。當您想推遲交易時,基本上使用一個工作單元,直到完成一組操作。

posting是一個很好的概述實體框架是如何打算工作的單位使用。

+0

所以你說這不重要,你真的把它放在哪裏?你只在需要時才使用它? – Rushino

+0

@Rushino只是因爲你可以使用它,並不意味着你應該。 Entity Framework似乎遵循Martin Fowler在「企業應用程序架構模式」中闡述的劇本。這絕對是推薦閱讀,並會給你一些關於Entity Framework(以及幾乎任何ORM)如何在更高級別上佈局的見解。 –

+0

其實很好的答案。 – Rushino

相關問題