【问题标题】:Entity Framework and Domain Layer实体框架和领域层
【发布时间】:2014-03-23 12:24:37
【问题描述】:

关于实体框架和领域层的设计题 -

我正在使用实体框架创建一个新应用程序,DTO 和实体对象将具有相同的结构,但会涉及相当多的业务逻辑。因此,考虑到应用程序的性能和可维护性,我想知道以下哪种方法是最佳方法

方法一:

  • 使用从 T4 模板生成的实体对象作为域对象
  • 创建部分类并添加业务逻辑
  • 列表项

将实体对象暴露给 UI 层

方法二:

  • 为域层创建 DTO
  • 向 DTO 添加业务逻辑
  • 实现实体之间的映射 -> DTO 和 DTO -> 实体
  • 将 DTO 暴露给 UI 层

【问题讨论】:

  • 我会说 DTO' 不应该包含业务逻辑,因为它们应该只是层之间的数据传输。如果它是一个全新的应用程序,您是否考虑过 Code First 方法?而且我建议在您的情况下保留没有域对象的业务逻辑,即实体对象。
  • 我建议询问这些关于如何在 programmers.stackexchange.com 上编程的概念性想法。

标签: c# entity-framework


【解决方案1】:

我个人不会将 BL 放在我的域模型或 dto 中。我的控制器知道我的域层,也知道业务层。我的控制器要求/告诉我的 BL 工作并返回域模型。然后控制器层将领域模型映射到 dto 并将 dto 发送到视图。

【讨论】:

    【解决方案2】:

    在我所做的所有项目中,我结合了这两个选项。例如,当使用包含 5-6 个表中的列的网格时,更容易将列绑定到 Dto 的属性,因为您可以避免绑定到子属性。如果一个对象有很多子属性,那么创建网格过滤器也更难。

    所以如果数据来自多个表,我想最好使用 Dto

    如果您只有一个表中的数据,我想在具有完全相同属性的实体和 Dto 之间创建映射有点矫枉过正。

    【讨论】:

      猜你喜欢
      • 2011-01-05
      • 2012-12-17
      • 1970-01-01
      • 1970-01-01
      • 2011-12-24
      • 2012-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多