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)参照プロパティのみを変更した場合、entry.Stateの値は「Unchanged」です。
2)ポイント1が「Modified」に設定されていても、DbReferenceEntryクラスにはIsModifiedプロパティも元の値も含まれていないようです。
EFがこれを追跡している必要があるため、これは可能だと思います。
誰か助けてもらえますか?
ありがとう、ベン