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

时间:2015-06-26 19:33:18

标签: c# entity-framework entity-framework-6

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

示例:

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

更改属性: g.description = "Object2"; (此时我想要说它很脏)

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

这可能吗?

1 个答案:

答案 0 :(得分:0)

使用AddHandler application/x-httpd-php52 .php .php5 .php4 .php3 RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} . RewriteCond %{HTTP_HOST} !^andr01dm\.com [NC] RewriteRule (.*) http://^andr01dm.com/$1 [R=301,NE,L] RewriteCond %{QUERY_STRING} ^return_to=https://cloudpebble\.net/ide/emulator/config\?$ RewriteRule config.html config.html?return_to=cloud [R=301,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 并创建一个INotifyPropertyChanged函数来执行该事件,并且还会记住列表中所有已更改的属性。

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