实体与POCO之间的区别

Roa*_*oar 1 c# oop entity domain-driven-design poco

在这篇文章中说:

实体框架使您可以将自定义数据类与数据模型一起使用,而无需对数据类本身进行任何修改.这意味着您可以将"普通旧"CLR对象(PO​​CO)(例如现有域对象)与您的数据模型一起使用.这些POCO数据类(也称为持久性无知对象)映射到数据模型中定义的实体,支持大多数与实体生成的实体类型相同的查询,插入,更新和删除行为.数据模型工具.

POCO是一个有行为的DTO.

那么POCO和实体不一样吗?有什么区别?

Ily*_*kin 8

Plain Old CLR Object(POCO)与Plain Old Java Object(POJO)具有相同的含义.

这个词被创造出来,而Rebecca Parsons,Josh MacKenzie和我正准备在2000年9月的一次会议上发表演讲.在演讲中我们指出了将业务逻辑编码为常规java对象而不是使用Entity Beans的许多好处.我们想知道为什么人们如此反对在他们的系统中使用常规对象,并得出结论,这是因为简单的对象缺乏一个奇特的名字.所以我们给了他们一个,并且非常好.

作者:Martin Fowler

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

实体是具有身份并且可以唯一确定的对象.

实体代表域模型和域逻辑.通常它们被设计为持久性无知的POCO对象.但并非每个POCO对象都是实体.值对象也被设计为POCO对象,它们不是实体.