Сравнить BookPhotos.Id
Выберите BookPhotos Книги рабочего набора из базы данных. Для каждой фотографии БД:
- Если идентификатор находится в рабочем наборе, то обновите байты (строка base64 в вашем случае)
- Если идентификатор не находится в рабочем наборе, затем удалите фотография
Для каждого рабочего набора фотографий:
- Если идентификатор отсутствует в БД, вставьте это фото как новое
В качестве альтернативы веб-запрос может указать, какие записи являются новыми, измененными и удаленными, вместо того, чтобы просто указывать новое состояние модели. Затем вы просто выполняете эти действия с БД.
В этом заключается то, что вы доверяете клиенту. Если он говорит добавить уже существующий элемент (первичный ключ) или изменить / удалить элемент, который не существует, конечно, операция БД не будет выполнена. Вы сами решаете, как ответить клиенту в этом случае, и если вы откатите все операции как одну транзакцию или разрешите совершить то, что сработало.