.Net Core EF’de CreatedDate ve ModifiedDate’i otomatik olarak nasıl doldururuz?

.Net Core projemizde EF kullanarak geliştirdiğimiz projelerde CreatedDate ve ModifiedDate’i otomatik olarak nasıl doldururuz? Örnek modelimiz aşağıdaki gibi olsun.

namespace OrnekProje.Models
{
    public class User
    {
        public int UserId { get; set; }
        public string Username { get; set; }


        public DateTime CreatedDate { get; set; }
        public DateTime ModifiedDate { get; set; }
    }
}

Çözüm 1)

namespace OrnekProje.Models
{
    public class User
    {
		public User()
       {          
         this.CreatedDate  = DateTime.UtcNow;
         this.ModifiedDate = DateTime.UtcNow;
       }
	   
        public int UserId { get; set; }
        public string Username { get; set; }


        public DateTime CreatedDate { get; set; }
        public DateTime ModifiedDate { get; set; }
    }
}

Şeklinde düzenleyerek kendiniz değiştirmeli / güncellemelisiniz.

Çözüm 2)

Özel attribute:

[SqlDefaultValue(DefaultValue = “getutcdate()”)]
public DateTime CreatedDate { get; set; }

Çözüm 3)

Entity Framework yardımıyla:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Passage>()
        .Property(b => b.CreatedDate )
        .HasDefaultValueSql("getdate()");
}

You may also like...