Entity Framework Core PostgreSQL Вставка -2147482647 Идентификатор - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть проект .NET Core 2.0, использующий базу данных Postgres, в которой я использую EntityFrameworkCore.PostgreSQL (2.0.1), которая вставляет странное значение для моего идентификатора таблицы.

Это, кажется, происходитслучайно и, кажется, полностью игнорирует мою последовательность идентификаторов.

В качестве идентификатора вставляемая строка вставляется наименьшее значение int32 -2147482647.Тогда все будущие вставки не могут произойти, и он представляет эту ошибку:

Экземпляр типа объекта «Объект» не может быть отслежен, поскольку другой экземпляр с таким же значением ключа для {'Id'} уже отслеживается.При подключении существующих объектов убедитесь, что подключен только один экземпляр объекта с данным значением ключа.Рассмотрите возможность использования 'DbContextOptionsBuilder.EnableSensitiveDataLogging', чтобы увидеть конфликтующие значения ключа.

Перед сохранением Entity я знаю, что он использует идентификатор мусора, который, как я полагаю, является отрицательным, но из моего понимания, когда вы сохраняете, этот идентификатор должен быть обновлен досоответствует вашей последовательности.И похоже, что будущие вставки также получат тот же самый идентификатор мусора, который вызывает ошибку, которую я получаю.

Интересно, была ли у кого-то еще эта проблема, и если да, то в чем причина.

...