У меня есть эта модель
public class Comment
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int CommentId { get; set; }
public DateTime CreatedAt { get; set; }
public DateTime LastEditedAt { get; set; }
}
Я пытаюсь дать дб генерировать значение CreatedAt
и LastEditedAt
так в моем OnModelCreating
методе моего DbContext
я использовал
modelBuilder.Entity<Comment>(c =>
{
c.Property(p => p.CreatedAt).ValueGeneratedOnAdd();
c.Property(p => p.LastEditedAt).ValueGeneratedOnAddOrUpdate();
});
При попытке вставить я получаю внутреннее исключение в SaveChanges()
говорящее
{"Cannot insert the value NULL into column 'CreatedAt', table 'WX.dbo.Comment'; column does not allow nulls. INSERT fails."}
Означает ли это, что я должен вручную назначать значения этим двум столбцам?
Исправлено за счет того, что LastEditedAt
значение LastEditedAt
public DateTime CreatedAt { get; set; }
public DateTime? LastEditedAt { get; set; }
и установка значения по умолчанию SQL для CreatedAt
modelBuilder.Entity<Comment>(c =>
{
c.Property(p => p.CreatedAt).HasDefaultValueSql("GETUTCDATE()");
c.Property(p => p.LastEditedAt).ValueGeneratedOnAddOrUpdate();
});