我将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();
我收到此错误:
EntityFramework.Core.dll中发生了类型为'Microsoft.Data.Entity.DbUpdateConcurrencyException'的未处理异常。其他信息:数据库操作预期会影响1行,但实际上影响0行。自加载实体以来,数据可能已被修改或删除
关于我为什么会收到此错误的任何想法吗?
您可以使用自动实现的属性,如下所示。
class LogMessage
{
public LogMessage()
{
}
public DateTime? MessageDate { get; set; } = DateTime.Now;
public string Body { get; set; }
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句