c# - 对数据库的更改已成功提交,但在更新对象上下文 EF6 时出错
问题描述
我正在使用 npgsql + EF6 但在对表执行插入操作后出现以下错误
对数据库的更改已成功提交,但在更新对象上下文时出错。
ObjectContext 可能处于不一致的状态。内部异常消息:保存或接受更改失败,因为多个“用户”类型的实体具有相同的主键值。确保显式设置的主键值是唯一的。确保在数据库和实体框架模型中正确配置了数据库生成的主键。使用实体设计器进行数据库优先/模型优先配置。
使用“HasDatabaseGeneratedOption”流式 API 或“DatabaseGeneratedAttribute”进行 Code First 配置。
foreach (string code in customer)
{
user us = new user();
us = new user { code = code, user_id = user_id, roleid = roleid};
_context.user.Add(us);
_context.Entry(us).State = System.Data.Entity.EntityState.
}
_context.SaveChanges();
检查数据库后,我发现数据库中的值确实更新了,但在刷新上下文时出现了问题。
下面是通过 DB 模型生成的类:
public partial class user
{
public double id { get; set; }
public Nullable<double> user_id { get; set; }
public string code { get; set; }
public Nullable<decimal> roleid { get; set; }
public virtual roles roles { get; set; }
}
这里 id 是主键,并通过数据库中的触发器自动递增。
解决方案
推荐阅读
- firebase - 如何从firebase中删除节点
- c# - Azure 上的 IIS 中的每个单独的 HTTP 事务是否使用相同的线程?
- c - 为什么浮点数据类型对 X/Y(例如 5/9)和 X.0/Y.0(例如 5.0/9.0)的处理方式不同?
- java - Spring JPA 扫描通用接口的用户实现
- java - 响应状态:未授权
- oracle - oracle - 根据值类型重新排列列值
- angular - Angular 材质菜单模块:找不到名称“matMenu”的导出
- r - 跟进 stat_contour_2d bins - 解释
- github - GitHub 操作默认设置
- django - 使用服装自举形式创建 Django 用户