0

我知道 POCO,最近听说过自我跟踪实体。谁能解释一下 POCO 和 STE 的区别

4

1 回答 1

1

自跟踪实体是在实际实体类的 getter/setter 中具有持久性逻辑的实体。简而言之,他们是懂得如何自救的实体。

这与仅作为存储实体的 POCO 实体(普通旧 CLR 对象)不同(即它们没有内部逻辑)。

EF 与如何处理这些的主要区别在于 EF 如何检测更改。STE 将更改告诉 EF,EF 通常使用跟踪图来检测附加实体的更改。

注意: STE 在最新版本的 EF 中已弃用

POCO 和带有 EF 的 STE 之间也有一点中间地带,称为 POCO 代理实体。对于此实体框架将重载您的 POCO 类的属性并创建一个代理,该代理将在发生更改时通知 EF。为此,您需要将类上的所有属性设为虚拟。POCO 代理在某些情况下可以表现得更好,尤其是在跟踪图很大的情况下。然而,性能并非在所有情况下都更好,请参阅Arthur Vickers(来自 EF)在 POCO Proxies 上的帖子

据我了解,POCO 代理旨在取代 STE。

于 2013-03-24T09:18:05.860 回答