实体框架中的POCO

时间:2011-04-01 09:19:10

标签: entity-framework poco

我已经多次在实体框架中阅读过POCO的概念但我并不理解它。虽然我已阅读有关POCO的链接,但我仍需要一个明确的解释。

1 个答案:

答案 0 :(得分:4)

POCO只是意味着您的实体类没有任何持久性逻辑。这意味着如果你有一个Order类,它将永远不会包含任何用于从db获取数据或将数据保存到db的方法。在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和Entity Framework的原因是EF1几乎不可能实现真正的POCO架构。许多关心ORM之类的开发人员想要使用POCO架构,这是一个很大的问题。使用EF4,特别是EF4 CodeFirst,Microsoft进行了大量更改,使POCO架构非常容易实现。