EF7插入默认日期错误

本文关键字:错误 日期 默认 插入 EF7 | 更新日期: 2023-09-27 18:13:09

我使用EF7与SQLite和定义我的类,像这样:

 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();

我得到这个错误:

类型的未处理异常"Microsoft.Data.Entity。DbUpdateConcurrencyException发生在附加信息:数据库操作预期影响1行,但实际影响0行。数据可能自实体加载以来已被修改或删除

知道为什么我得到这个错误吗?

EF7插入默认日期错误

您可以使用自动实现属性如下所示。

 class LogMessage
{
    public LogMessage()
    {
    }
    public DateTime? MessageDate { get; set; } = DateTime.Now;
    public string Body { get; set; }
}