【问题标题】:How to marry EntityFramework, Repository, UnitOfWork and Automapper altogether in one MVC application?如何在一个 MVC 应用程序中结合 EntityFramework、Repository、UnitOfWork 和 Automapper?
【发布时间】:2011-07-11 21:16:38
【问题描述】:

首先,我决定创建一个名为 IDataAccessLayer 的接口并开始将所有内容放入其中:GetUsers()GetUser(int id)GetOrderByNumber(int number)DeleteOrder(int Id) 等方法。

起初效果很好。但后来我意识到DataLayer:IDataLayer 的具体实现正在变得越来越大。我决定把它分成几个部分类文件。我仍然觉得我做错了什么。

然后我决定为每个逻辑部分创建接口,如IUsersIOrdersIItems 等。没有工作,因为我通过注入控制器构造函数的一个依赖属性访问存储库。因此,每次我需要在控制器中使用不同类型的 dataContext 时,我不能只添加另一个属性。

然后在阅读有关实体框架的文章数小时后,我终于意识到我必须使用 RepositoryUnit of work 模式。而且我仍然需要以某种方式将 POCO 从我的 ViewModel 对象中分离出来,尽管它们几乎一直都有相似之处。 Automapper 有很大帮助。但是现在,我不确定如何将所有东西一起使用。实体框架、模式、Automapper 和依赖注入框架,如 Ninject。

我不清楚如何将所有这些混合到一个很棒的架构中。请给我一些很好的例子。

【问题讨论】:

    标签: c# entity-framework repository automapper unit-of-work


    【解决方案1】:

    你可以看看我几个月前写的this sample (MVCArch)。 它具有以下优点:

    • 实体框架
    • 存储库和工作单元模式
    • 自动映射器
    • 忍者
    • 等等……

    希望这会有所帮助。

    【讨论】:

    • 这太棒了!所有伟大的 MVC 模式一起工作的集合!
    【解决方案2】:

    首先是一篇关于使用 Repository 和 UnitOfWork 原则的 n 层架构的整体文章:link。我有一些使用 EF 和上述模式的经验,我发现这篇文章很有帮助。

    查看 herehere 以获取有关这些原则的 MSDN 文章。

    问候。

    【讨论】:

      【解决方案3】:

      你有没有通过these tutorials

      【讨论】:

      • @Darin 这些是获得想法的好教程,但我认为您不应该将它们实现到真正的应用程序中。我的意思是,所有的存储库都与 UnitOfWork 类紧密耦合。每次将新存储库添加到系统中时,您也在更改 UnitOfWork 类。不是吗?
      猜你喜欢
      • 2016-09-15
      • 2010-12-07
      • 2015-08-19
      • 2019-09-14
      • 1970-01-01
      • 1970-01-01
      • 2016-11-03
      • 2015-07-21
      • 1970-01-01
      相关资源
      最近更新 更多