7 c# ado.net entity-framework change-tracking entity-framework-4.1
希望在我的DbContext子类上编写通用审计代码.
foreach (var entry in this.ChangeTracker.Entries<MyClass>())
{
if (entry.State == EntityState.Modified)
{
var entityProperties = entry.Entity.GetType().GetProperties();
foreach (var entityProperty in entityProperties)
{
DbMemberEntry propertyEntry = entry.Member(property.Name);
if (propertyEntry is DbPropertyEntry)
{
// IsModified available
}
else if (propertyEntry is DbReferenceEntry)
{
// IsModified not available
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
1)如果我只更改引用属性,则entry.State值为"Unchanged".
2)即使将第1点设置为"已修改",DbReferenceEntry类似乎也没有IsModified属性,也没有原始值.
我认为这是可能的,因为EF必须跟踪这一点.
有人可以帮忙吗?
谢谢,本