Что ж, если вы назначите свойство, то Entity Framework будет предполагать, что вы знаете, что вы делаете, и обновит его. Вы говорите, что пользователь изменил только одно поле, но я не уверен, как или MVC, или Entity Framework должны знать, что из всех пар ключ-значение в форме POSTed HTML пользователь фактически изменил только одну. , В своем вопросе вы говорите, что «значения не были изменены», но в своих комментариях к ответу @ jchapa вы говорите, что «не вся информация одинакова». Это говорит о том, что реальная проблема не в том, что делает Entity Framework, а в том, что вы говорите, чтобы сделать это.
Я думаю, что, возможно, вы ищете решение не в том месте.
Если ваша настоящая проблема заключается в том, что модель, переданная действию, содержит поля, которые пользователь никогда не сможет изменить и которые никогда не должны обновляться (возможно, потому что они вообще не находятся в форме), тогда вы можете передать белый список TryUpdateModel
.
Если ваша настоящая проблема заключается в том, что другой пользователь мог изменить экземпляр Person
между временем, когда пользователь отправил запрос GET для формы, и временем, когда пользователь отправил ей изменения, вы можете добавить поле TIMESTAMP в таблицу. и установите для него фиксированный режим параллелизма.