我正在写作,因为目前我正在尝试在示例类上实现对象更改跟踪。我开始使用代理,这种方法符合我的需求。 定义方法和属性定义为虚拟的类,然后代理创建适合我。
但除此之外,我真的很好奇Entity Framework(使用代码优先方法)如何设法跟踪对象的更改,其中属性未定义为虚拟。
我确实理解创建代理(没有定义接口; ef不要求)是不可能的。那么EF如何跟踪变化?如果我是对的并且无法创建代理,那么它是如何工作的?
它是否在保存操作时将对象状态与数据库进行比较,还是进行更改?
感谢您的回复!
答案 0 :(得分:0)
对象在上下文之后有2个状态副本。它也用于乐观并发。
修改强>
这意味着,Entity将我修改的对象与属性的属性进行比较。