Buscando escribir código de auditoría genérico en mi subclase DbContext.Entity Framework Change Tracking API y entradas de referencia
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) Si solo cambio una propiedad de referencia, la entrada. El valor del estado es "Sin cambios".
2) Incluso si el punto 1 se estableció en "Modificado", la clase DbReferenceEntry no parece tener una propiedad IsModified, ni un valor original.
Supongo que esto es posible porque EF debe hacer un seguimiento de esto.
¿Alguien puede ayudar?
Gracias, Ben