我在MVC中創建應用程序。當我嘗試向SQL Server 2008插入數據時,它顯示如下錯誤:當插入數據到sqlserver顯示錯誤
ObjectStateManager中已存在具有相同鍵的對象。 現有對象處於未更改狀態。如果一個對象處於添加狀態,則只能將 添加到ObjectStateManager。
這是什麼意思?
Candidate candidate = _repository.GetCandidate(LoggedInCandidate.Id);
candidate.Name = collection["Name"];
candidate.Email = collection["Email"];
candidate.Address = collection["Address"];
candidate.ContactNumber = collection["ContactNumber"];
candidate.MobileNumber = collection["MobileNumber"];
candidate.LicenseNumber = collection["LicenseNumber"];
int candidateId = _repository.AddCandidate(candidate);
string[] languages = collection["Languages"].Split(',');
foreach (string language in languages)
{
if (!string.IsNullOrEmpty(language))
{
CandidateLanguage cl = new CandidateLanguage();
cl.CandidateId = candidateId;
cl.LanguageId = Convert.ToInt32(language);
_repository.AddCandidateLanguage(cl);
}
}
_repository.Save();
}
這意味着,具有相同ID的相同類型的和實體已經被加載到上下文和複製是不允許的。我們需要看到一些代碼能夠分辨出究竟導致了什麼。 –
請向我們展示您的控制器代碼,將其插入數據庫並調用db.SaveChanges() –