У меня есть сущность Client
и сущность PostCode
в модели Linq to SQL.Таблица Clients
в базе данных содержит столбец client_postcode
, который является столбцом FK для столбца почтового индекса в таблице PostCode
, которая является первичным ключом столбца varchar для таблицы PostCode.
При обновлении клиента в моем кодеЯ делаю это
// postcode
updating.PostCode = (from p in ctx.PostCodes
where p.postalcode.Equals(client.PostCode.postalcode)
select p).First();
, где client
объект предоставляется из формы ASP.NET MVC View.Похоже, этот код отлично устанавливает сущность, связанную с PostCode.Но при вызове SubmitChanges () я получаю следующее исключение:
Значение элемента 'postalcode' объекта типа 'PostCode' изменилось.Член, определяющий идентичность объекта, не может быть изменен.Попробуйте добавить новый объект с новым идентификатором и удалить вместо него существующий.
Так что в настоящее время я не могу изменить связанный объект.Как это сделать в Linq to Sql?
ОБНОВЛЕНИЕ:
После дальнейшего просмотра и устранения неполадок я обнаружил, что проблема в вызове ASP.NET MVC UpdateModel ().Если я вызываю UpdateModel (), чтобы обновить существующую сущность с отредактированными данными, что-то не так с назначением FK для PostCode.Если я не вызываю UpdateModel и делаю это вручную, это работает.Любые идеи, что идет не так в UpdateModel (), что он не может правильно установить отношения с объектами внешнего ключа?
Я обновляю этот вопрос и начинаю вознаграждение.Вопрос упрощен.Как успешно использовать L2S и UpdateModel () для работы при обновлении элементов (со связанными объектами как FK) в представлениях Edit ASP.NET MVC?