变更追踪的三种方式
1、快照
支持 POCO Entity。

把查询出来的 Entity 存储一个快照,修改 Entity 后和快照对比那些属性发生变化。
-- ORM 按需更新
2、代理
分为动态代理和静态代理两种方式 ,代理的实现原理
利用 virtual 特性进行属性重写 从而实现变更追踪。
支持 POCO Entity。

静态代理 创建一个代理类继承 POCO ,然后通过代理类访问属性。
动态代理 动态创建。

get name -- ORM 延迟加载

set name --ORM 属性变更追踪
1、2 EF 实现原理。
3、复杂实体
通过自定义 所有属性的 Get Set 访问器,达到变更追踪的目标。
不支持 POCO Entity。
rafy 是这样实现的

浙公网安备 33010602011771号