实体框架更改跟踪API和参考条目
-
26-10-2019 - |
题
希望在我的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
}
}
}
}
1)如果我只更改参考属性,则条目值为“不变”。
2)即使点1设置为“修改”,dbreferenceentry类似乎没有ISMODIED属性,也没有原始值。
我认为这是可能的,因为EF必须跟踪此问题。
谁能帮忙?
谢谢,本
解决方案
是的参考条目(导航属性)不跟踪更改。这是外国密钥财产的责任(如果是外国密钥协会)或独立关联的单独对象跟踪变化。在ObjectContext API中,您可以通过 ObjectStateManager
但是看起来DBContext API没有可用的。我问了一个问题 MSDN论坛.
不隶属于 StackOverflow