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行。数据可能自实体加载以来已被修改或删除
知道为什么我得到这个错误吗?
您可以使用自动实现属性如下所示。
class LogMessage
{
public LogMessage()
{
}
public DateTime? MessageDate { get; set; } = DateTime.Now;
public string Body { get; set; }
}