Это меня озадачило, несмотря на многочисленные посты здесь.
Сценарий - это базовое веб-приложение MVC (2) с простыми операциями CRUD.При отправке формы редактирования и вызове UpdateModel () возникает исключение:
System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException не обрабатывается кодом пользователя
против значения DropDownList, которое является внешним ключом в таблице сущностей.Однако в форме есть еще один список DropDownList, представляющий другой внешний ключ, который не вызывает ошибку (что неудивительно).Изменение значений свойств вручную внутри действия редактирования:
Recipe recipe = repository.GetRecipe(int.Parse(formValues["recipeid"]));
recipe.CategoryId = Convert.ToInt32(formValues["CategoryId"].ToString());
recipe.Page = int.Parse(formValues["Page"].ToString());
recipe.PublicationId=Convert.ToInt32(formValues["PublicationId"].ToString());
Позволяет обновить свойства CategoryId и Page, а затем выдается ошибка в PublicationId.Вся ссылочная целостность проверяется одинаково в БД и БД.
Любой свет, который можно пролить на это, будет приветствоваться.