MVC业务逻辑+ DAL +使用EF模型映射ViewModel

时间:2018-05-31 18:41:51

标签: entity-framework model-view-controller orm data-access-layer

我开始开发一个应用程序,我想知道组织解决方案架构的最佳实践。

  1. 我应该使用EF Class Model作为我的ViewModel吗?
  2. 我应该将所有查询和数据库访问权限放在模型中吗?或创建服务来管理所有Db问题?
  3. 我正在使用EF和DB First,因为db已经开发了。

    谢谢!

1 个答案:

答案 0 :(得分:0)

有更完整的应用程序架构描述,但这里是$ .25描述。

  1. EF类模型用于与数据存储进行通信
  2. 数据传输对象(DTO)是模块之间相互通信的方式 (WebAPI到MVC等)
  3. ViewModels提供您的UI所需的数据
  4. 查找与应用程序架构相关的“关注点分离”,它可以保存您的对接。通常,当您发现自己为自己画了一个角落时,开发人员会将这些实体双重目的导致一些搞笑的结果。如果你是“画家”,那就不那么好笑了。

    另一方面,保持这些模型需要额外的努力,映射需要CPU周期。这是一个具体的例子:

    WebAPI访问People实体(EF类)并映射到PeopleDTO(不是所有字段,可能是附加信息)并将其返回给您的MVC控制器。 MVC控制器接受PeopleDTO并将其与支持查找表(更多WebAPI调用)合并,以创建Razor页面使用的PeopleVM(ViewModel)。

    在我刚刚概述的场景中,有三种不同类型的People对象,但每种对象可能具有非常不同的内容,这取决于该“层”的需求。有很多工具可以使映射不那么痛苦。

    清除?