gpt4 book ai didi

c# - EF7错误插入默认日期

转载 作者:行者123 更新时间:2023-12-03 19:31:54 25 4
gpt4 key购买 nike

我将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”发生在
EntityFramework.Core.dll附加信息:数据库操作
预期会影响1行,但实际上会影响0行。数据可能
自加载实体以来已被修改或删除


关于我为什么会收到此错误的任何想法吗?

最佳答案

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

 class LogMessage
{
public LogMessage()
{

}

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

}

关于c# - EF7错误插入默认日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40046097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com