EF7 错误插入默认日期

EF7 Error insert Default Date

我将 EF7 与 SQLite 一起使用,并像这样定义我的 class:

 class LogMessage
{
    public LogMessage()
    {

    }

    public DateTime? MessageDate { get; set; }
    public string Body { get; set; }

}

在 OnModelCreating 中,我指定了这样的默认值:

modelBuilder.Entity<LogMessage>()
            .Property(m => m.MessageDate).HasDefaultValueSql("CURRENT_TIMESTAMP");

当我检查数据库时,我得到了这个对我来说看起来不错的结构:

CREATE TABLE "LogMessage" 
(
"MessageDate" TEXT NOT NULL DEFAULT (CURRENT_TIMESTAMP) CONSTRAINT "PK_LogMessage" PRIMARY KEY,
"Body" TEXT
)

但是当我尝试使用以下代码向实体添加内容时:

result = "a";
Message = new LogMessage();
Message.Body = result;
context.LogMessages.Add(Message);
context.SaveChanges();

我收到这个错误:

An unhandled exception of type 'Microsoft.Data.Entity.DbUpdateConcurrencyException' occurred in EntityFramework.Core.dll Additional information: Database operation expected to affect 1 row(s) but actually affected 0 row(s). Data may have been modified or deleted since entities were loaded

知道我为什么会收到此错误吗?

您可以使用 Auto-Implemented Properties,如下所示。

 class LogMessage
{
    public LogMessage()
    {

    }

    public DateTime? MessageDate { get; set; } = DateTime.Now;
    public string Body { get; set; }

}