我只是在构建一个模型,然后尝试通过该.SaveChanges()
函数将其插入数据库,但是当我运行时,SaveChanges()
我得到一个数据库错误,表明发生了主键重复......
所以我深入研究了 SQL 日志记录,发现这个模型插入试图重新插入已经存在的数据......为什么会发生这种情况?
我的代码
using (var dbContext = new dbContext(_dbContextOptions))
{
Request request = new Request()
{
RequesterId = 1,
HelpRequestType = helpRequestTypeObject, //new model is being inserted for this on .SaveChanges()
Status = statusObject, //new model is being inserted for this on .SaveChanges()
AssignmentKeyId = 12,
TimeCreated = DateTime.Now,
CustomContactIds = null
};
//add request to transaction
dbContext.Request.Add(request);
dbContext.SaveChanges();
}
编辑:所以我改变了一切来创建模型,只使用外键引用的id(没有直接链接的实体),这似乎解决了我的问题。一旦创建了实体并应用了 .SaveChanges() ,模型就会像预期的那样链接到所有其他实体。似乎我使用以前在不同 DbContext 下查询过的实体而不是我用于创建这个新实体的活动实体给自己造成了问题。