如何将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时都添加另一个属性。
然后在阅读了许多关于实体框架的文章之后,我终于意识到我必须使用Repository和Unit of work模式。我仍然需要以某种方式将poco从我的ViewModel对象中分离出来,尽管几乎所有时候它们都有相似之处。Automapper帮了很多忙。但是现在,我不知道如何把这些东西一起使用。实体框架,模式,自动装配器和依赖注入框架,如Ninject。
我不清楚如何将所有这些融合到一个令人敬畏的建筑中。
您可以看看我几个月前写的这个示例(MVCArch)。它利用了:
- 实体框架
- 库,工作模式单位
- Automapper
- Ninject
- 等等…
首先是一篇关于使用Repository和UnitOfWork原则的n层体系结构的文章:link。我有一些EF和上述模式的工作经验,我发现这篇文章很有帮助。
请在这里和这里查看有关这些原则的MSDN文章。
问候。
你看过这些教程了吗