使用其中一种比另一种有什么优点?我知道 POCO 类更优化,但它们值得大肆杀戮吗?我们应该始终使用 POCO 还是有时您应该更喜欢实体框架类?
EF 默认类都继承自 EF 基类,而 POCO 则不然(因此得名)。从 EF 基类继承时,更改跟踪背后的逻辑对您隐藏,并且所有逻辑都存储在保存对象引用的上下文中。如果您在连接状态下工作,即您在拥有实体的同时拥有上下文,则这是首选。这通常是您构建“胖”客户端的情况,因此客户端和数据库是仅有的两层。
另一方面,如果您正在使用 Web 服务/Web 表单,您传递的实体没有上下文并且必须自己跟踪状态 - 那么 POCO 是更好的选择,因为它们具有更改跟踪对象作为它们的属性,可以四处转移,直到您决定将更改应用到上下文并保存。另一项好处是您的客户端不必是 .NET,也不必使用 EF .dll 来反序列化您的对象。