Я использую Npgsql.EntityFrameworkCore для вставки и обновления записей в таблице. Однако время от времени это выдает ошибку:
Экземпляр типа сущности 'UserAccount' не может быть отслежен, потому что
другой экземпляр с тем же значением ключа для {'Id'} уже
отслеживаются. При подключении существующих объектов убедитесь, что только один объект
экземпляр с данным значением ключа прилагается. Рассмотреть возможность использования
'DbContextOptionsBuilder.EnableSensitiveDataLogging', чтобы увидеть
конфликтующие ключевые значения.
Где моя таблица / сущность - UserAccount.
Я смотрю на базу данных и вижу, что один из идентификаторов - -2147482647
Это происходит время от времени, и я не могу воспроизвести или найти какую-либо документацию по нему. У меня нет ошибок до того, как идентификатор обновляется, как только я обновляю идентификатор до чего-то подходящего, система снова работает нормально без прежней ошибки.
Похоже, что -2147482647 - это временный идентификатор, который Entity использует для объектов перед сохранением. Как только он сохранит изменения, он должен обновить этот идентификатор до того, какой должна быть последовательность базы данных. Поэтому, когда он пытается удержать объект как -2147482647, он видит, что идентификатор уже находится в системе, и выдает ошибку.
Кто-нибудь когда-либо имел подобное раньше? Я пытался устранить неисправность как можно лучше, но, не имея возможности воспроизвести это, я просто делаю снимки в темноте.