簡體   English   中英

實體框架核心 PostgreSQL 插入 -2147482647 Id

[英]Entity Framework Core PostgreSQL Inserting -2147482647 Id

我有一個使用 Postgres 數據庫的 .NET Core 2.0 項目,我使用的是 EntityFrameworkCore.PostgreSQL (2.0.1),它為我的表 ID 插入了一個奇怪的值。

這似乎是隨機發生的,似乎完全忽略了我的 ID 序列。

它插入最小的 int32 值 -2147482647 作為插入的行的 ID。 然后所有未來的插入都不會發生,它會出現這個錯誤:

無法跟蹤實體類型“Object”的實例,因為已跟蹤具有相同 {'Id'} 鍵值的另一個實例。 附加現有實體時,請確保僅附加一個具有給定鍵值的實體實例。 考慮使用 'DbContextOptionsBuilder.EnableSensitiveDataLogging' 來查看沖突的鍵值。

在實體保存之前,我知道它使用了一個垃圾 ID,我認為它是負面的,但是根據我的理解,當您保存該 ID 時,應該更新該 ID 以匹配您的序列。 看起來未來的插入也獲得了相同的垃圾 ID,這導致了我收到的錯誤。

想知道是否有其他人遇到過這個問題,如果有的話是什么原因。

遲到的答案,但對於其他發現這個問題的人:是的,我已經看到了這一點,並且在 EF Core + PostgreSQL 數據庫的組合中也是如此。 請確保您的主列的序列值正確! 對我們來說,“當前值”以某種方式設置不正確,因此下一個值會命中已經存在的 id。

我認為這里發生的是,這被視為新行的特殊值,但是當由於數據庫原因無法插入新行時,它會向用戶公開。 我認為這通常不是 Entity Framework Core 問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM