【问题标题】:MVC architeture with EF Code FirstEF Code First 的 MVC 架构
【发布时间】:2014-07-23 14:24:23
【问题描述】:
我试图了解如何分离模型类/MVC 以与 EF CodeFirst 中的数据库设计进行交互。
例如,考虑一下这个简单的架构:
我的应用程序:
1. WEB
2. DATABASE
3. ModelEntity
问题是:
谁应该在WEB UI中不显示表调用数据库?
ModelEntity 还是模型/MVC?
这种情况下是否需要使用mapper?
【问题讨论】:
标签:
c#
asp.net-mvc
entity-framework
design-patterns
architecture
【解决方案1】:
您的控制器将成为您在 web ui 和模型之间的中间人,模型代表数据库中的表。
通常,您的 Web UI 将使用 ViewModles,这可能与您的 ModelEntity 不一致,这时AutoMapper 之类的工具就非常有用了。
【解决方案2】:
这就是我通常将我的分开的方式:
1) 数据层:实体模型、EF 映射器、EF 上下文
2) 领域层:领域模型、实体到领域模型映射器、查询对象、查询处理程序、命令对象、命令处理程序、服务
3) 应用层:视图模型、域到视图模型映射器、应用程序外观
4) UI 层:控制器、Razor 视图,可能还有其他一些不适合应用层的视图模型