【发布时间】:2014-03-05 08:25:58
【问题描述】:
我对应用程序中的对象名称有一些问题。例如,任何 ORM(NHibernate 或实体框架)生成的类都称为域对象?实体?模型对象?他们是 DAO 吗?它们之间有什么区别?
谢谢
【问题讨论】:
-
请修改您的问题。现在还不清楚你到底在问什么。
标签: orm model separation-of-concerns
我对应用程序中的对象名称有一些问题。例如,任何 ORM(NHibernate 或实体框架)生成的类都称为域对象?实体?模型对象?他们是 DAO 吗?它们之间有什么区别?
谢谢
【问题讨论】:
标签: orm model separation-of-concerns
代表数据库表的类称为域,通常每个表都有一个域类(多对多关系表除外)。
要将此域类映射到您的实际数据库,您将(通常再次)为每个域类都有一个映射类,当您声明表和每个域成员应映射到的不同数据库字段时。
您现在有一个数据访问层 (DAL),用于选择、更新、插入或删除映射到您的数据库的域类。
但是,如果您构建一个应用程序来使用您的 DAL,那么您肯定会使用 DTO 或模型。模型是要在应用程序中显示的对象,通常不同于域。它可以是字段格式、删除纯数据库字段的数据子集、两个不同域的合并。
因此,您的应用程序只会操作 DTO(或模型),当应用程序创建/更新/删除 DTO 时,您的服务器将管理 DTO 和域之间的转换。
数据库 映射 域 DTO
【讨论】: