EF проблема с переупорядочением сущностей и ограничением уникальности - PullRequest
2 голосов
/ 20 марта 2010

Я использую Entity Framework, и я пришел к интересному камню преткновения. Допустим, есть таблица БД «Item» со столбцом «sequence» типа int (и, конечно, другие). Столбец «последовательность» должен быть уникальным и использоваться для (пере) упорядочивания товаров.

EF отображает эту таблицу в класс "Item" со свойством "sequence" int. Теперь предположим, что я хочу поменять местами позиции двух элементов путем взаимного обмена порядковым номером друг друга. При вызове SaveChanges () EF выдает исключение с жалобой на уникальность «последовательности». Вероятно, он генерирует два ОБНОВЛЕНИЯ, а первый, вероятно, дает сбой.

Я предполагаю, что в простом решении SQL этой проблемы используется третье ОБНОВЛЕНИЕ для введения уникального значения последовательности в процесс, но я застрял с EF.

Есть мысли?

РЕДАКТИРОВАТЬ: я использую SQL Express.

1 Ответ

1 голос
/ 21 марта 2010

Если вы используете SQL Server Express 2008, вы можете исследовать с помощью нового оператора T-SQL MERGE . Вы должны иметь возможность обновить столбец последовательности с помощью одного оператора MERGE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...