c# - 如何将 EntityFramework、Repository、UnitOfWork 和 Automapper 结合到一个 MVC 应用程序中?

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

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

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

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

然后在阅读了很多关于 Entity Framework 的文章之后,我终于意识到我必须使用 RepositoryUnit 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/

相关文章:

interface - 继承是 'is-a'关系;总结 'interface'关系的好方法是什么? ——总结其他关系?

c# - 在表中组织 TreeView 节点

c# - 验证列表已排序且项目具有特殊字符时获取 NUnit AssertionException

.net - Entity Framework (代码优先)继承映射 : mix of TPT and TPC

c# - 尝试使用 Entity Framework 从数据库下载大文件时出错

android - 整洁架构存储库

java - 当调用 setter 时,Jpa @Repository 是否会自动更新对象?

c# - 在 CRM Online 中动态使用 GetAttributeValue<T>

c# - 如何将项目添加到窗口的上下文菜单中[仅适用于 pdf 文件和 doc 文件]

c# - Mysql - "order by"/Subquery 上的 Entity Framework 性能问题