How to automatically populate CreatedDate and ModifiedDate?

后端 未结 6 2040
失恋的感觉
失恋的感觉 2021-01-31 17:07

I am learning ASP.NET Core MVC and my model is

namespace Joukyuu.Models
{
    public class Passage
    {
        public int PassageId { get; set; }
        publi         


        
6条回答
  •  忘了有多久
    2021-01-31 17:39

    If your are using Code first you could try this

    [Required, DatabaseGenerated(DatabaseGeneratedOption.Computed)]
    public DateTime CreatedDate { get; set; }
    

    On Migration

    AddColumn("Passage", "CreatedDate", n => n.DateTime(nullable: false, defaultValueSql: "GETDATE()"));
    

    More reference here,similar answer

    Or you can global override the saveChanges Note* This will affect on the entire model if you have the CreatedDate field

    public override int SaveChanges()
    {
      DateTime saveTime = DateTime.Now;
      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();  
    }
    

提交回复
热议问题