我正在使用SQLite和EntityFramework。
我的所有实体都继承自BaseEntity
,具有属性:
DateTime LastUpdated { get; set; }
是否可以在数据库中每次更新实体时自动将LastUpdated
设置为DateTime.Now
?我在考虑覆盖SaveChanges()
方法或在属性的getter或setter中做某事(不确定是什么)。
答案 0 :(得分:2)
您可以通过覆盖SaveChanges
方法来完成以下操作:
public override int SaveChanges()
{
IEnumerable<DbEntityEntry<BaseEntity>> entries = ChangeTracker.Entries<BaseEntity>()
.Where(e => e.State == EntityState.Added || e.State == EntityState.Modified);
foreach (DbEntityEntry<BaseEntity> entry in entries)
{
entry.Entity.LastUpdated = DateTime.Now;
}
return base.SaveChanges();
}