2017-10-09 31 views
0

我使用一個代碼第一種方法,我得到以下異常:獲取例外的插入值到數據庫

「保存或接受改變失敗,因爲類型爲‘CustomerInfo’不止一個實體有相同的主鍵值確保顯式設置的主鍵值是唯一的確保數據庫生成的主鍵在數據庫和實體框架模型中正確配置使用實體設計器進行數據庫優先/模型優先配置使用' HasDatabaseGeneratedOption「流暢API或'DatabaseGeneratedAttribute'代碼優先配置。」

回答

0

主鍵必須是唯一的,因爲它是唯一標識一行(表格條目)的主鍵。你可能正在做的是試圖爲已經從另一個表項設置的主鍵設置一個值。 擺脫此類問題的一種方法是使用自動遞增的主鍵,以便您不必擔心。例如,您可以作爲主鍵如下服務器引入附加字段:

[Key] 
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
public Int32 Id { get; set; } 

因此這將自動生成,並設置一個主鍵,在需要設置自己的主鍵釋放你。 這仍然是解決您的問題的一種方法,也可以使用其他方法解決您的問題。

0

主鍵在整個表中都是唯一的。因此,如果您爲兩個或更多記錄的主鍵賦予相同的值,則它將失敗。解決方案是將您的主要關鍵值視爲唯一。