Этот пример касается создания представлений и проверки на стороне клиента, к сожалению, серверная часть (IMO) плохая. Плохо в том смысле, что это создает путаницу ...
Вы правы, вы не должны делать это с реальной базой данных.
Но есть примеры EF на сайте asp.net: http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/implementing-basic-crud-functionality-with-the-entity-framework-in-asp-net-mvc-application
Ответы:
В приведенном вами примере я покажу, что context.Entry(student).State = EntityState.Modified;
- это все, что нам нужно делать, когда нам нужно обновить? пожалуйста, объясните мне снова.
Почти эта строка сообщает EF, что эта запись обновлена, и это текущие значения. Сейчас изменения происходят только в памяти сервера. Вы фактически сохраняете изменения обратно в базу данных, выполняя команду db.SaveChanges();
. Остальное обрабатывает EF. См. «Создание страницы редактирования» в примере.
если так, разве нам не нужно сначала удалить существующую запись?
Нет, к сожалению, первый пример без БД сбивает с толку. Когда я впервые увидел это, я подумал: «Черт, этот парень курит?». Просто чтобы понять, что это официальный образец ...
и затем, разве нам не нужно задавать какие-либо параметры условия для процесса обновления?
Не нужно делать это явно, поскольку привязка модели MVC заботится о считывании всех значений (включая PersonID в скрытом поле) из опубликованных данных. Идентификатор текущей записи находится в скрытом html-поле, поэтому MVC знает, какую запись вы обновляете. Например: Views \ Students \ Edit.cshtml строка 17:
@Html.HiddenFor(model => model.PersonID)
И все работает "автоматически".