Tschareck
Tschareck

Reputation: 4239

Set Last Updated on each SaveChanges in Entity

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

Answers (1)

Morteza Manavi
Morteza Manavi

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

Related Questions