Нужно написать общий код Audit для моего подкласса 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 имеет значение «Не изменено».
2) Даже если для точки 1 установлено значение «Modified», класс DbReferenceEntry, по-видимому, не имеет ни свойства IsModified, ни исходного значения.
Я предполагаю, что это возможно, поскольку EF должен отслеживать это.
Может кто-нибудь помочь?
Спасибо, Бен