【问题标题】:Does Entity Framework DB First (EDMX) prevent proper Separation of Concerns?Entity Framework DB First (EDMX) 是否会阻止适当的关注点分离?
【发布时间】:2012-07-13 15:59:06
【问题描述】:

我是实体框架和 MVC 的新手,并试图了解什么是新应用程序的良好设计方法。

有几种使用实体框架的方法。但是,对于我的项目,最好的选择是 DB First。我玩过一个 EDMX 文件,并且已经使用 DbContext 代码生成器来创建我的包装类。

我计划使用存储库和工作单元模式,并使用 ninject 进行 DI。

但是,从 SoC 的角度来看,虽然我的存储库会从我的代码中隐藏数据存储 (EF) 的实现,但模型类本身非常具有 EF 风格,这似乎并不“合适”。

似乎使用基于 EDMX 的 EF 方法模糊了关注点的分离。只有 POCO 支持似乎允许真正的分离,但 POCO 有一些我不喜欢的其他限制。

是我遗漏了什么,还是使用 EDMX 有这个缺点?

人们是否使用自动映射器在实体模型和另一个干净的 SoCced 模型之间进行转换?

谢谢

【问题讨论】:

  • 实体框架风格如何影响关注点分离?
  • 您可以添加一个更好地代表您的域的 Dto 层和一个将实体转换为 Dtos 的翻译层。我发现流程非常复杂的转换,Auto Mapper 比编写和单元测试映射例程更多的工作。

标签: entity-framework edmx separation-of-concerns


【解决方案1】:

我对 Separation of Concerns 问题没有强烈的意见,但我使用了标准 ADO.Net 版本的 EF 和 POCO,自定义 T4 代码生成的输出一点也不难用于 POCO 的脚本,以解决您对创建的对象结构的任何担忧。听起来这可能是您想要做的事情的一个很好的起点。

一旦您知道您正在寻找 T4 模板,就会有很多教程和很多有用的 SO 问题可以让您了解需要做什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-01
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 2012-10-15
    相关资源
    最近更新 更多