首先,我决定创建一个名为 IDataAccessLayer
的接口(interface),并开始将所有内容放入其中:方法如 GetUsers()
、GetUser(int id)
, GetOrderByNumber(int number)
, DeleteOrder(int Id)
等
一开始效果非常好。但后来我意识到 DataLayer:IDataLayer
的具体实现正在变得越来越大。我决定把它分成几个部分类文件。我仍然觉得我做错了什么。
然后我决定为每个逻辑部分创建接口(interface),如 IUsers
、IOrders
、IItems
等。没有用,因为我是通过注入(inject)到 Controller 的构造函数中的一个依赖属性访问存储库。所以每次我需要在我的 Controller 中使用不同类型的 dataContext 时,我不能只添加另一个属性。
然后在阅读了很多关于 Entity Framework 的文章之后,我终于意识到我必须使用 Repository 和 Unit of work 模式。而且我仍然需要以某种方式将 POCO 与我的 ViewModel 对象分开,尽管几乎所有时间它们都会共享相似之处。自动映射器有很大帮助。但是现在,我不确定如何一起使用所有东西。 Entity Framework 、模式、Automapper 和依赖注入(inject)框架,如 Ninject。
我不清楚如何将所有这些混合到一个很棒的架构中。你能给我一些很好的例子吗?
最佳答案
你可以看看this sample (MVCArch)我几个月前写过。 它利用了:
- Entity Framework
- 存储库和工作单元模式
- 自动映射器
- 注入(inject)
- 等...
希望这对您有所帮助。
关于c# - 如何将 EntityFramework、Repository、UnitOfWork 和 Automapper 结合到一个 MVC 应用程序中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6656683/