c#实体框架跟踪尚未添加到上下文的实体上的脏

本文关键字:实体 上下文 框架 跟踪 添加 | 更新日期: 2023-09-27 17:59:53

我想这个问题很简单。我正在做的事情是创建实体,然后不立即将其添加到上下文中,这意味着它不会被正式跟踪以进行更改。

示例:

创建实体:var g = new Foo(){id = 1, description = "Object1"}(创建后,此对象不会触发任何更改或脏标志)

更改属性:g.description = "Object2";(在这一点上,我想说它是脏的)

我能想到的一件事是以某种方式创建对象,然后将其添加到上下文中,但随后立即回滚上下文,跟踪刚刚添加对象的事实,然后对该对象的任何进一步更改都将触发Context.changeTracker.HasChanges()来触发。

这可能吗?

c#实体框架跟踪尚未添加到上下文的实体上的脏

使用INotifyPropertyChanged并创建一个OnPropertyChanged函数,该函数执行事件并在列表中记住所有更改的属性。

或者你可以使用一些更复杂的东西,比如AOP。例如,使用Castle的动态代理:http://www.christophdebaene.com/blog/2009/01/10/aop-in-action-part-2-dirty-tracking-using-mixins-with-castles-dynamicproxy/