在实体

时间:2016-05-12 12:35:28

标签: c# entity-framework

我正在使用SQLite和EntityFramework。 我的所有实体都继承自BaseEntity,具有属性:

 DateTime LastUpdated { get; set; }

是否可以在数据库中每次更新实体时自动将LastUpdated设置为DateTime.Now?我在考虑覆盖SaveChanges()方法或在属性的getter或setter中做某事(不确定是什么)。

1 个答案:

答案 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();
}