2011-04-01 294 views
0

我在实体框架中阅读过POCO的概念很多次,但我不明白。虽然我读过关于POCO的链接,但我仍然需要一个明确的解释。实体框架中的POCO

+2

你有什么不明白的?这个概念,如何创建它们或如何使用它们?你的问题非常不明确。 – 2011-04-01 09:51:02

回答

4

POCO只是表示您的实体类没有任何持久性逻辑。这意味着如果你有一个Order类,它将永远不会包含任何用于从数据库获取数据或将数据保存到数据库的方法。您将永远不会在POCO上拥有Order.GetById()或Order.Save()方法。您也不能从包含持久性逻辑的基类继承(这是EF1掉落的位置)。

您的实体类将拥有的是一堆代表数据的属性,您可能会有一些验证方法,也可能是一些对订单数据进行操作的业务方法,但您不会拥有持久性方法获取或保存数据。 POCO体系结构中的持久性由独立的类(如Repository或DataService)处理。

如果您想了解更多有关POCO的信息,我写了一篇博文,在这里给出了更详细的解释http://rlacovara.blogspot.com/2009/03/what-is-difference-between-dto-and-poco.html

您看到很多关于POCO和实体框架的原因是,EF1几乎不可能实现真正的POCO架构。许多关心ORM的开发人员都希望使用POCO架构,这是一个很大的问题。使用EF4,尤其是EF4 CodeFirst,微软已经做出了很多改变,使得POCO架构非常易于实现。