【问题标题】:Difference between Entity and POCOEntity 和 POCO 的区别
【发布时间】:2014-04-03 18:30:39
【问题描述】:

在这个article 中说:

实体框架使您能够一起使用自定义数据类 使用您的数据模型而不对数据进行任何修改 自己上课。这意味着您可以使用“普通的”CLR 对象 (POCO),例如现有的域对象,以及您的数据模型。 这些 POCO 数据类(也称为持久性无知对象), 映射到数据模型中定义的实体,支持 大多数与实体相同的查询、插入、更新和删除行为 由实体数据模型工具生成的类型。

POCO 是具有行为的 DTO。

所以 POCO 和实体不一样?有什么区别?

【问题讨论】:

    标签: c# oop entity domain-driven-design poco


    【解决方案1】:

    普通旧 CLR 对象 (POCO) 与 Plain Old Java Object (POJO) 具有相同的含义。

    这个词是在 Rebecca Parsons、Josh MacKenzie 和我当时创造的 准备在 2000 年 9 月的一次会议上发表演讲。在演讲中,我们 指出将业务逻辑编码成 常规的 java 对象,而不是使用实体 Bean。我们想知道为什么 人们非常反对在他们的系统中使用常规对象,并且 得出的结论是,这是因为简单的对象缺乏花哨的名称。所以 我们给了他们一个,它很受欢迎。

    马丁·福勒

    POCO 只是一个常规对象,它没有对任何特定框架的引用,并且不遵循它们的接口或限制。 POCO 类是可以与任何 ORM 一起使用的持久性无知对象。

    Entity 是一个具有标识且可以唯一确定的对象

    实体代表领域模型和领域逻辑。通常它们被设计为持久性无知的 POCO 对象。但并非每个 POCO 对象都是实体。 Value Objects 也被设计为 POCO 对象和 they are not Entities.

    【讨论】:

      【解决方案2】:

      实体通常需要在 EF 和 NHibernate 等 ORM 中进行特定设计。延迟加载的关联通常是虚拟的,因此运行时可以创建代理。通常需要默认的公共构造函数。以此类推。

      传统实体通常由 EF 中的设计器生成。但在最近的版本中,可以使用所需的规则设计类并映射到数据库。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多