Я пытаюсь обновить некоторые свойства объекта, вызывая UpdateModel(myObject, new[] { "stringprop1", "stringprop2", "intprop"})
.
Это происходит по неизвестной причине. Несколько строковых свойств успешно обновляются. Когда я пытаюсь обновить свойство int, происходит сбой. Новое значение int отправляется из списка выбора html в представлении.
Я могу видеть данные из представления в моем ValueProvider. Ключ соответствует имени свойства объекта, а значение - это то, что я ожидаю от представления (за исключением того, что это строка. Я думал, что UpdateModel может обрабатывать простые преобразования типов.
Когда я вызываю UpdateModel, генерируется исключение InvalidOperationException, ТОЛЬКО ЕСЛИ ЗНАЧЕНИЕ СОБСТВЕННОСТИ ИЗМЕНЯЕТСЯ.
Кроме того, этот объект является сгенерированным объектом Linq To Sql.
EDIT
Просматривая состояние модели после вызова TryUpdateModel, я вижу это исключение для свойства, с которым у меня возникают проблемы:
- Exception {"Operation is not valid due to the current state of the object."} System.Exception {System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException}
Значение, которое я пытаюсь обновить, является внешним ключом. Почему я не могу обновить это значение? Спасибо за любую помощь?
РЕДАКТИРОВАТЬ 2
Я нашел это:
http://social.msdn.microsoft.com/Forums/en-US/linqtosql/thread/f9c4a01a-195a-4f2b-a1cb-e2fa06e28b25
Я мог бы поклясться, что раньше менял ключ вместо свойства ассоциации, но что угодно. Что можно сделать в этой ситуации привязки модели MVC?