Чтобы обновить один столбец из нескольких записей с ограничением уникального ключа, я попытался использовать следующий код:
foreach (var product in Products)
{
product.Position= Position;
db.Entry(product).State = EntityState.Modified;
}
db.SaveChanges();
Ниже генерируется SQL
update "XXMES"."TB_PRODUCT"
set "POSITION" = :p0
where ("PRODUCT_ID" = :p1)
-- :p0: '6' (Type = Decimal)
-- :p1: '6586632' (Type = Int64)
Даже при обновленииВо всех строках одной транзакции EF генерирует SQL, который обновляет по одной записи за раз, что вызывает ниже исключение из-за ограничения уникального ключа для столбца, которое ожидается для сгенерированного sql, поскольку Position
уникально. Я пытаюсь выяснить способ, SQL генерирует запрос для обновления всех записей за один раз, поэтому ограничение не будет нарушено. Пожалуйста, дайте мне знать, если есть обходной путь
ORA-00001: unique constraint (RWMES.TB_TRIM_PATTERN_SET_POS_UK) violated