2012-10-24 22 views
4

我需要使用實體框架編寫數據訪問層。其中一個要求是允許配置文件控制數據的來源。使用一個配置設置它應該來自數據庫;與另一個來自Web服務。可切換數據訪問層的結構

現在,我最初的想法是有3個數據訪問類:

  • WidgetDataAccess
  • WidgetDatabaseDataAccess
  • WidgetWebServiceDataAccess

他們都實現相同的接口。 WidgetDataAccess將讀取配置並將其委託給正確的子類。這似乎是明智的,對吧?

是否有任何我應該遵循的模式,或者有更好的方法來構造這個模式的人?

回答

1

是,Repository/UnitOfWork模式。

  • Widget.Core:只使用Widget.DAL命名你的MVC應用程序,依賴與任何Widget.DAL.DatabaseService或Widget.DAL.WebService注入根據您的配置文件
  • Widget.DAL :IRepository,IUnitOfWork,IWhateverYouNeed,DTOs
  • Widget.DAL.DatabaseService:實體框架模型和上下文。使用您的實體框架上下文Widget.DAL接口實現
  • Widget.DAL.WebService:Web客戶端,域對象,使用Web客戶端的Widget.DAL接口的實現
+0

我讀了Repository模式是失寵。這是需要考慮的嗎? – Kev

+0

你從哪裏讀到這個? – Pluc