我正在使用實體框架,通用存儲庫和服務層的SQL Server 2012。我的意圖是始終使用EF和SQL Server。如果我正在使用SQL Server 2012和EF6,將混合存儲庫添加到混合中有什麼優勢?
這工作正常,但有人建議我不需要EF內置存儲庫上的通用存儲庫。
有人可以告訴我是否有任何優勢使用通用資源庫?我不是在尋找意見之一,因爲過去的經驗告訴我,在提到這個詞的意見後,問題被人們關閉:-(
我正在使用實體框架,通用存儲庫和服務層的SQL Server 2012。我的意圖是始終使用EF和SQL Server。如果我正在使用SQL Server 2012和EF6,將混合存儲庫添加到混合中有什麼優勢?
這工作正常,但有人建議我不需要EF內置存儲庫上的通用存儲庫。
有人可以告訴我是否有任何優勢使用通用資源庫?我不是在尋找意見之一,因爲過去的經驗告訴我,在提到這個詞的意見後,問題被人們關閉:-(
你的建議也被稱爲。在ORM世界第二級緩存雖然它可以大大提高性能,這是很困難的正確實現下面是探討利弊,並討論實施細則一對夫婦資源:
http://msdn.microsoft.com/en-us/magazine/hh394143.aspx
http://queue.acm.org/detail.cfm?id=1394141
將數據模式添加到數據層,例如通用存儲ory模式提供了一個抽象級別,這反過來又具有諸如讓你的代碼可測試的優點。
在附註上,您可能要考慮與GR耦合的另一個數據模式是工作單元模式。這將允許您對事務進行分組並執行邏輯操作,例如提交和回滾更改。
我個人並沒有看到使用這些模式會帶來任何性能上的提升,但它肯定會使開發更容易,並且使代碼更易於維護,我認爲這是一個優點。
庫模式是堅持和檢索您的域的骨料(骨料的東西,包括實體和值對象(DDDesign))。實體框架默認情況下支持UnitOfWork模式(context.SaveChanges()),您仍然需要存儲庫模式來檢索和保存您的聚合和實體。 大多數人使用UnitofWork並且還處理數據訪問層中的CRUD操作,但是正如我現在提到的單元工作的實體框架支持,您以後只能在存儲庫中使用唯一的存儲庫模式。
看到這個博客,希望它有助於:
http://ehsanghanbari.com/Post/23/layer-supertype-pattern-with-example-in-c