Я переписывал заголовок и контент 3 раза, прежде чем опубликовать его, я не нашел правильного способа спросить это: P
У меня есть страница, которая управляет списком заметок, у меня есть CRUD наэта страница, но элементы создаются и сохраняются в javascript (с использованием knockoutjs).
Я создаю новую заметку, добавляю ее в модель в javascript, и она отображается на странице.
Я сохраняю заметки в базе данных, когда добавляю их в модель и отправляю через Ajax (асинхронно) на сервер.Итак, моя заметка на экране и в базе данных действительно быстрая.
Я отправляю заметку без идентификатора на сервер, и EF позаботится об идентификаторе.
Пока все хорошо.
Представьте, что я добавляю заметку, но не обновляю веб-страницу, поэтому заметка находится в базе данных, тоже в модели javascript, но в модели у нее пока нет идентификатора.
Я делаю некоторые изменения в заметке, и да, я хочу обновить заметку в базе данных ... но ... как?
Я отправляю свою заметку на сервер с изменениями, но помните, чтоУ предмета по-прежнему нет идентификатора, поэтому я не могу сказать:
Эй, ЭФ, дай мне записку с идентификатором == xx, и мы собираемся обновить эту заметку.
Другие свойства могутизменить на веб-странице, чтобы у меня не было ничего, что идентифицировало бы примечание, кроме идентификатора, который здесь не работает.
Я пробовал это:
Отправьте новую заметку на сервер, вставьтеэто в базе данных, получить его снова (чтобы выбрать Id), отправить его обратно в JavaScript и обновить объектт с идентификатором.Поэтому, когда я редактирую, у меня есть идентификатор.Да, но «сохранить» вызов должен быть синхронизирован, и это разрушит опыт.
Есть идеи?
РЕДАКТИРОВАТЬ : Параметры синхронизации не так медленны вконец, но должен быть асинхронный способ, и что-то вроде «Вставить в базу данных», «Извлечь последний элемент, который я вставил» и «Вернуть клиенту», немного хакерски.