Reputation: 4239
I'm using SQLite with EntityFramework.
All my entities inherit from BaseEntity
, that has property:
DateTime LastUpdated { get; set; }
is it possible to automatically set LastUpdated
to DateTime.Now
everytime entity is updated in database? I was thinking either about overriding SaveChanges()
method or doing something (not sure what) in getter or setter of the property.
Upvotes: 0
Views: 234
Reputation: 33206
Here is how you can do it by overriding SaveChanges
method:
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();
}
Upvotes: 2