I want to fill CreatedOn
column of my entities. I know the approach of overriding SaveChanges()
and setting there value, something like this:
public override int SaveChanges()
{
foreach (var item in ChangeTracker.Entries<ITrackableEntity>().Where(c => c.State == EntityState.Added))
{
item.Entity.CreatedOn = DateTime.Now;
}
return base.SaveChanges();
}
interface ITrackableEntity
{
DateTime? CreatedOn { get; set; }
}
The problem is that I'm setting client side time which is unacceptable in my case (multiuser desktop app, users could have different time on theirs computers). How can I set Sql server time to CreatedOn
column? I don't want to do this in triggers. I want something that translates into that SQL:
INSERT INTO SomeTable (Column1, CreatedOn)
VALUES Value1, GETDATE();