2011-04-01 220 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架構非常易於實現。