支持 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 是这样实现的

相关文章: