我只是想改變「訂單」價值兩個要素,我有以下代碼:實體框架 - 重新排序元素
int tmpItemOrder = item1.Order;
item1.Order = item2.Order;
item2.Order = tmpItemOrder;
await _db.SaveChangesAsync();
,但我得到的唯一關鍵的問題(順序是唯一鍵)
{「的唯一鍵約束‘IX_EscortItems’。衝突不能插入對象‘dbo.EscortItems’ 重複鍵。重複的關鍵值是 (2,20)。\ r \ n該語句已終止。」}
據我所知,當系統嘗試設置一個dublicate密鑰時,即使在事務中也會引發錯誤。奇怪的行爲,但現狀。
如何正確解決此問題?
有人猜測,如果按順序更新值,只要第一個值被設置,它將立即違反唯一鍵約束。即使兩個'SaveChanges'調用也會有相同的效果。您可能必須使用中間唯一值。 –
另一種觀點認爲,交換密鑰並不常見,也許問題需要一種不同的方法 - 只是一個想法。 –
@PeterSmith,你是對的,即使兩個SaveChanges調用也有同樣的效果! –