Не имеет смысла устанавливать CREATED
и UPDATED
на Automapper
.Во-первых, Creation Time
должно быть временем сохранения записи в базе данных вместо времени отображения, во-вторых, ANAGRAFI
- это новый пустой экземпляр при отображении, вы не сможете решить, будет ли это операция создания или обновления.
Для стандартного способа вы можете попытаться установить эти поля во время SaveChanges
или SaveChangesAsync
.
BaseEntity
public class BaseEntity
{
public DateTime? DateCreated { get; set; }
public DateTime? DateModified { get; set; }
}
SchoolContext
public class SchoolContext : DbContext
{
public DbSet<Student> Students { get; set; }
public override int SaveChanges()
{
SetCreatedAndModified();
return base.SaveChanges();
}
public override async Task<int> SaveChangesAsync()
{
SetCreatedAndModified();
return await base.SaveChangesAsync();
}
private void SetCreatedAndModified()
{
var entities = ChangeTracker.Entries().Where(x => x.Entity is BaseEntity && (x.State == EntityState.Added || x.State == EntityState.Modified));
foreach (var entity in entities)
{
if (entity.State == EntityState.Added)
{
((BaseEntity)entity.Entity).DateCreated = DateTime.UtcNow;
}
((BaseEntity)entity.Entity).DateModified = DateTime.UtcNow;
}
}
}