可切换数据访问层的结构

时间:2012-10-24 16:31:36

标签: c# asp.net-mvc entity-framework design-patterns

我需要使用Entity Framework编写数据访问层。其中一个要求是允许配置文件控制数据的来源。使用一个配置设置,它应该来自数据库;与另一个人,来自网络服务。

现在,我最初的想法是拥有3个DataAccess类:

  • WidgetDataAccess
  • WidgetDatabaseDataAccess
  • WidgetWebServiceDataAccess

他们都会实现相同的界面。 WidgetDataAccess将读取配置并委托给正确的子类。那似乎是明智的,对吗?

我是否应该遵循任何模式,或者有更好的方法来构建它?

1 个答案:

答案 0 :(得分:1)

是,Repository / UnitOfWork模式。

  • Widget.Core :您的MVC应用程序仅使用Widget.DAL命名空间,依赖于您的配置文件注入Widget.DAL.DatabaseService或Widget.DAL.WebService
  • Widget.DAL :IRepository,IUnitOfWork,IWhateverYouNeed,DTOs
  • Widget.DAL.DatabaseService :实体框架模型和上下文。使用您的Entity Framework上下文实现Widget.DAL接口
  • Widget.DAL.WebService :Web客户端,域对象,使用Web客户端实现Widget.DAL接口