Looking to write generic Audit code on my DbContext subclass.
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) If I only change a reference property, the entry.State value is "Unchanged".
2) Even if point 1 was set to "Modified", the DbReferenceEntry class doesn't seem to have an IsModified property, nor an original value.
I assume this is possible because EF must be tracking this.
Can anyone help?
Thanks, Ben