2011-03-30 26 views

回答

4

實體框架有內部實現的工作單元,你不能沒有這個簡單地使用它。如果您加載實體並對其進行修改,則在調用SaveChanges之前,它們不會保留到數據庫中。

如果您的問題更多地是關於「我應該使用自定義工作單元實現嗎?」答案取決於許多因素。通常你不需要它。自定義UoW通常用於存儲庫。存儲庫反過來有時用於隱藏與EF的交互,並使你的上層持久無知。使用存儲庫的另一個原因是更高層的可測試性。但在我看來,現代ORM工具並不需要這兩種模式。

+0

然後,如果我們使用存儲庫,那麼我們應該使用UoW。這是對的嗎? – 2011-03-30 12:43:02

+4

您應該在儲存庫之間共享單個上下文。爲了實現我們通常使用自定義工作單元實現,其中工作單元隱藏上層的上下文,但將其提供給存儲庫。 – 2011-03-30 12:47:37