Я использовал код из вопроса Переопределить сохранение изменений для реализации аудита в моем приложении.Когда сущность добавляется, все замечательно.Однако при изменении сущности дата «CreatedOn» никогда не загружается.
Это всегда ноль, поэтому начальная дата "CreatedOn" удаляется из базы данных.
Я также попытался просмотреть коллекцию OriginalValues, сохраненную в объекте, и она заполняется для даты «ModifiedOn», но не для даты «CreatedOn».Оба поля заполняются в базе данных ... почему EF загружается, а другое не загружается?
public override int SaveChanges()
{
var changeSet = ChangeTracker.Entries<IAuditable>();
if (changeSet != null)
{
foreach (DbEntityEntry<IAuditable> entry in changeSet)
{
switch (entry.State)
{
case EntityState.Added:
entry.Entity.CreatedOn = DateTime.Now;
entry.Entity.ModifiedOn = DateTime.Now;
break;
case EntityState.Modified:
entry.Entity.ModifiedOn = DateTime.Now;
//entry.Entity.CreatedOn date always null here
break;
}
}
}
return base.SaveChanges();
}