我註冊使用MVC 5用戶,但上線db.SaveChanges()
,我得到下面的錯誤用戶:問題在註冊使用MVC 5
到數據庫的更改被成功提交,但一個錯誤 發生時更新對象上下文。
ObjectContext
可能 處於不一致的狀態。
內部異常消息:
的AcceptChanges不能繼續在
ObjectStateManager
另一個對象,因爲該對象的key
值 衝突。在致電AcceptChanges
之前,確保 關鍵值是唯一的。
我註冊使用MVC 5用戶,但上線db.SaveChanges()
,我得到下面的錯誤用戶:問題在註冊使用MVC 5
到數據庫的更改被成功提交,但一個錯誤 發生時更新對象上下文。
ObjectContext
可能 處於不一致的狀態。
內部異常消息:
的AcceptChanges不能繼續在
ObjectStateManager
另一個對象,因爲該對象的key
值 衝突。在致電AcceptChanges
之前,確保 關鍵值是唯一的。
錯誤說你在上下文中有一個重複鍵,所以無法保存。檢查您的密鑰生成並確保您的密鑰是唯一的。
更新
如果添加您需要修改實體驗證組合鍵。創建一個繼承自IIdentityValidator
的類並檢查ValidateAsync
方法中的密鑰。然後將此課程插入您的ApplicationUserManager
(在Create
方法中)。另外請確保修改實體框架爲您創建的索引。你需要你的第二個關鍵成員添加到使用此標註指數:
[Index("UserNameIndex", Order = 2, IsUnique = true)]
public string SecondKeyMember { get; set; }
在
ApplicationUser
類
。
我認爲這就是爲ApplicationUser添加第二個關鍵成員所需的全部內容。
我已經創建了我的分貝組合鍵。這是否造成任何問題 – 2014-09-11 07:24:58
是的,這可能是我會更新我的答案。 – 2014-09-11 07:26:38
然後我將如何克服這個 – 2014-09-11 07:28:18
從DB更新模型,然後再試一次 – 2014-09-11 06:52:15
@Chamika Sandamal我已經更新了很多次,但沒有工作。 – 2014-09-11 06:53:15
db創建後是否有任何模型更改?如果是這樣,你必須遷移分貝 – 2014-09-11 07:01:19