Luk*_*101 8 c# entity-framework poco
我已经在entmpity框架中阅读了一些关于POCO的文章,但仍然不明白我能用它做什么.POCO如何使我的项目受益?
Sim*_*ens 21
POCO标准"普通老Clr对象".它指的是一种ORM体系结构,其中所有用于从数据存储中持久化和加载数据的工作都是由系统完成的,而对象本身知道发生了什么.这意味着ORM可以支持完全没有以任何方式修改ORM的普通对象.支持POCO持久性的ORM不要求您让您的类继承任何特定的基础,实现任何接口,甚至标记具有任何属性的方法.
与此完全相反(有时称为数据访问对象 - 或DAO)是当对象本身处理所有存储时,它确切地知道如何序列化和存储自身以及如何在需要时加载自身.在这种情况下,对象应该纯粹用于传输数据,不应该代表系统的任何业务逻辑.
实际上,这更像是两种情况的两种情况.许多ORM位于中间的某个位置,需要在类外部处理持久性,但通常还需要在持久化的类上实现一些元数据或接口以帮助实现.
EF(v1)不支持POCO.对象必须实现各种接口(以提供属性值更改的通知等),以便框架可以持久化.我相信有些插件试图为EF添加POCO支持,但我不知道它们有多成功..net 4.0中的EF将获得POCO支持.
POCO通常被认为是好的,因为它允许强烈的关注点分离.您可以定义数据对象,使其完全不了解将用于存储它们的机制.(因此,它可以很容易地为将来不同的东西切换存储机制).这也意味着您不必考虑用于存储它们的数据库/框架来设计数据对象.