Adding CreatedDate to an entity using Entity Framework 5 Code First

后端 未结 7 509
心在旅途
心在旅途 2020-12-13 02:24

I am trying to add a CreatedDate property to entities in my Model and am using EF5 Code First. I want this date to not be changed once set, I want it to be a UT

7条回答
  •  不思量自难忘°
    2020-12-13 03:10

    Override the SaveChanges-Method in your context:

    public override int SaveChanges()
    {
      DateTime saveTime = DateTime.UtcNow;
      foreach (var entry in this.ChangeTracker.Entries().Where(e => e.State == (EntityState) System.Data.EntityState.Added))
       {
         if (entry.Property("CreatedDate").CurrentValue == null)
           entry.Property("CreatedDate").CurrentValue = saveTime;
        }
        return base.SaveChanges();
    
    }
    

    Updated because of comments: only freshly added Entities will have their Date set.

提交回复
热议问题