2014-09-11 29 views
0

我註冊使用MVC 5用戶,但上線db.SaveChanges(),我得到下面的錯誤用戶:問題在註冊使用MVC 5

到數據庫的更改被成功提交,但一個錯誤 發生時更新對象上下文。 ObjectContext可能 處於不一致的狀態。

內部異常消息:

的AcceptChanges不能繼續在ObjectStateManager另一個對象,因爲該對象的key值 衝突。在致電AcceptChanges之前,確保 關鍵值是唯一的。

+0

從DB更新模型,然後再試一次 – 2014-09-11 06:52:15

+0

@Chamika Sandamal我已經更新了很多次,但沒有工作。 – 2014-09-11 06:53:15

+0

db創建後是否有任何模型更改?如果是這樣,你必須遷移分貝 – 2014-09-11 07:01:19

回答

0

錯誤說你在上下文中有一個重複鍵,所以無法保存。檢查您的密鑰生成並確保您的密鑰是唯一的。

更新

如果添加您需要修改實體驗證組合鍵。創建一個繼承自IIdentityValidator的類並檢查ValidateAsync方法中的密鑰。然後將此課程插入您的ApplicationUserManager(在Create方法中)。另外請確保修改實體框架爲您創建的索引。你需要你的第二個關鍵成員添加到使用此標註指數:

[Index("UserNameIndex", Order = 2, IsUnique = true)] 
public string SecondKeyMember { get; set; } 
ApplicationUser

我認爲這就是爲ApplicationUser添加第二個關鍵成員所需的全部內容。

+0

我已經創建了我的分貝組合鍵。這是否造成任何問題 – 2014-09-11 07:24:58

+0

是的,這可能是我會更新我的答案。 – 2014-09-11 07:26:38

+0

然後我將如何克服這個 – 2014-09-11 07:28:18