POCO与实体框架生成的类?

Vis*_*hal 9 .net poco entity-framework-4

使用一个优于另一个有什么好处?我知道POCO课程更优化,但是他们是否值得过度杀伤?我们是应该总是使用POCO还是有时候你应该更喜欢实体框架类?

vel*_*koz 8

EF默认类都继承自EF基类,而POCO则不继承(因此名称).继承自EF基类时,更改跟踪背后的逻辑对您是隐藏的,并且所有逻辑都存储在保存对象引用的上下文中.如果您在连接状态下工作,这是首选,即,您在拥有实体的同时拥有上下文.这通常是您构建"胖"客户端的情况,因此客户端和数据库是唯一的两个层.

另一方面,如果您正在使用Web服务/ Web表单,您传递的实体没有上下文并且必须自己跟踪状态 - 那么POCO是更好的选择,因为它们具有更改跟踪对象作为他们的属性,可以转移,直到您决定将更改应用于上下文并保存.另一个好处是,您的客户端不必是.NET,也不必使用EF .dll来反序列化您的对象.