【发布时间】:2011-07-11 21:16:38
【问题描述】:
首先,我决定创建一个名为 IDataAccessLayer 的接口并开始将所有内容放入其中:GetUsers()、GetUser(int id)、GetOrderByNumber(int number)、DeleteOrder(int Id) 等方法。
起初效果很好。但后来我意识到DataLayer:IDataLayer 的具体实现正在变得越来越大。我决定把它分成几个部分类文件。我仍然觉得我做错了什么。
然后我决定为每个逻辑部分创建接口,如IUsers、IOrders、IItems 等。没有工作,因为我通过注入控制器构造函数的一个依赖属性访问存储库。因此,每次我需要在控制器中使用不同类型的 dataContext 时,我不能只添加另一个属性。
然后在阅读有关实体框架的文章数小时后,我终于意识到我必须使用 Repository 和 Unit of work 模式。而且我仍然需要以某种方式将 POCO 从我的 ViewModel 对象中分离出来,尽管它们几乎一直都有相似之处。 Automapper 有很大帮助。但是现在,我不确定如何将所有东西一起使用。实体框架、模式、Automapper 和依赖注入框架,如 Ninject。
我不清楚如何将所有这些混合到一个很棒的架构中。请给我一些很好的例子。
【问题讨论】:
标签: c# entity-framework repository automapper unit-of-work