如何将EntityFramework, Repository, UnitOfWork和Automapper结合在一个MV

本文关键字:结合 一个 MV Automapper EntityFramework Repository UnitOfWork | 更新日期: 2023-09-27 18:01:42

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

一开始效果很好。但后来我意识到DataLayer:IDataLayer的具体实施越来越大。我决定把它分成几个部分类文件。但我还是觉得我做错了什么。

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

然后在阅读了许多关于实体框架的文章之后,我终于意识到我必须使用RepositoryUnit of work模式。我仍然需要以某种方式将poco从我的ViewModel对象中分离出来,尽管几乎所有时候它们都有相似之处。Automapper帮了很多忙。但是现在,我不知道如何把这些东西一起使用。实体框架,模式,自动装配器和依赖注入框架,如Ninject。

我不清楚如何将所有这些融合到一个令人敬畏的建筑中。

如何将EntityFramework, Repository, UnitOfWork和Automapper结合在一个MV

您可以看看我几个月前写的这个示例(MVCArch)。它利用了:

  • 实体框架
  • 库,工作模式单位
  • Automapper
  • Ninject
  • 等等…

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

请在这里和这里查看有关这些原则的MSDN文章。

问候。

你看过这些教程了吗