2016-10-28 23 views

回答

1

這是一場激烈的辯論,所以請考慮以下內容爲「答案」。

EF中的上下文是工作單元,其中DbSets是存儲庫。它們一起構成對數據庫的抽象。 SaveChanges方法將提交對每個存儲庫所做的所有更改。

有很多例子,人們使用存儲庫模式創建一個使用context/DbSet的IRepository。但是,這樣做,你是:

  • 了一個抽象
  • 因爲你的界面失去EF的功能創建一個抽象隱藏了實現

您將創建這個附加的抽象的原因是,你可以換掉其他的東西,比如另一個數據庫/存儲。 但我相信yagni在這裏。如果您正在開始一個針對SQL數據庫的項目,那麼客戶將更改爲Oracle的可能性有多大?

希望這會有所幫助。

+0

我的意見和你一樣。我認爲這個知識庫將會對EF本身進行批評嗎? –

相關問題