Изменения в базе данных были успешно зафиксированы, но произошла ошибка при обновлении контекста объекта EF6 - PullRequest
0 голосов
/ 21 июня 2020

Я использую npg sql + EF6, но после выполнения операции вставки в таблице я получаю следующую ошибку.

Изменения в базе данных были успешно зафиксированы, но при обновлении объекта произошла ошибка контекст. ObjectContext может находиться в несогласованном состоянии. Внутреннее сообщение об исключении: сохранение или принятие изменений не удалось, потому что несколько объектов типа «пользователь» имеют одинаковое значение первичного ключа. Убедитесь, что явно заданные значения первичного ключа уникальны. Убедитесь, что первичные ключи, созданные базой данных, правильно настроены в базе данных и в модели Entity Framework. Используйте Entity Designer для конфигурации Сначала база данных / Сначала модель. Используйте свободный API HasDatabaseGeneratedOption или 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();

После проверки базы данных я обнаружил, что значения действительно обновлены в базе данных, хотя есть проблема при обновлении контекста.

Вот класс, созданный с помощью модели БД:

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 - это первичный ключ, который автоматически увеличивается с помощью триггера в базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...