首页 > 解决方案 > 对数据库的更改已成功提交,但在更新对象上下文 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 是主键,并通过数据库中的触发器自动递增。

标签: c#entity-frameworkentity-framework-6npgsql

解决方案


推荐阅读