Пожалуйста, подскажите
Есть таблица, в ней есть поле, с ограничением UNIQUE.
Мне эту таблицу надо апдейтить.
Если все делать в чистом sql, то проблемы нет, т к апдейт происходит одним запросом.
Но через EF не получается, т к строки апдейтятся поштучно.
Пример:
Поле год уникально. Я хочу в запись, где стоял 2020 поставить 2019, и наоборот, короче, поменять местами.
Вот рабочий пример на sql.
UPDATE table
SET year = (CASE WHEN year = 2019 THEN 2020 WHEN year = 2020 THEN 2019 END)
WHERE year IN (2019, 2020)
А в ef так не выйдет, т к все апдейты идут последовательно, а не все сразу, даже если context.SaveChanges() вызвать только один раз в самом конце. Мы апдейтим строчку = 2020, но т к запись с уникальным 2020 уже есть, то вполне закономерно получаем ошибку.
NetFramework 6.2.0, не Core.
Вариант с удалением старых записей и вставкой новых не подходит, т к на сущность могут быть завязаны другие таблицы.
Есть ли механизм апдейтить все сразу через ef?