【问题标题】:How are called classes generated by an ORM?ORM如何生成所谓的类?
【发布时间】:2014-03-05 08:25:58
【问题描述】:

我对应用程序中的对象名称有一些问题。例如,任何 ORM(NHibernate 或实体框架)生成的类都称为域对象?实体?模型对象?他们是 DAO 吗?它们之间有什么区别?

谢谢

【问题讨论】:

  • 请修改您的问题。现在还不清楚你到底在问什么。

标签: orm model separation-of-concerns


【解决方案1】:

代表数据库表的类称为域,通常每个表都有一个域类(多对多关系表除外)。

要将此域类映射到您的实际数据库,您将(通常再次)为每个域类都有一个映射类,当您声明表和每个域成员应映射到的不同数据库字段时。

您现在有一个数据访问层 (DAL),用于选择、更新、插入或删除映射到您的数据库的域类。

但是,如果您构建一个应用程序来使用您的 DAL,那么您肯定会使用 DTO 或模型。模型是要在应用程序中显示的对象,通常不同于域。它可以是字段格式、删除纯数据库字段的数据子集、两个不同域的合并。

因此,您的应用程序只会操作 DTO(或模型),当应用程序创建/更新/删除 DTO 时,您的服务器将管理 DTO 和域之间的转换。

数据库 映射 域 DTO

【讨论】:

  • 嗨,布鲁诺,非常感谢您的解释。我知道映射类(通常从 ORM 生成)是域类,不是吗?
  • DAL 是实现 Delete 或 Save 的层吗,例如,T 是映射类?
  • 我喜欢将我的域类和映射类分开,但不确定这是否是最佳实践。 DAL 层绝对是您实现 Delete 或 save 的地方。我通常使用存储库模式来管理我的 DAL:link
  • 谢谢 Bruno,你知道我在哪里可以找到关于这个架构的简单示例下载吗?或者你有吗?非常感谢!
  • 谢谢布鲁诺,我昨天找到了这个链接。非常有趣
猜你喜欢
  • 2012-04-20
  • 2011-10-19
  • 1970-01-01
  • 1970-01-01
  • 2022-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-01
相关资源
最近更新 更多