Обновление коллекции в БД - PullRequest
2 голосов
/ 12 февраля 2009

Это может быть немного наивно, но я просто хочу проверить, как я поступаю правильно. Я получаю коллекцию объектов из пользовательского интерфейса. Затем я хочу проверить эти объекты по записям в БД.

Это то, что я делаю, чтобы создать обновление и удалить полученные объекты.

  1. Цикл через полученные объекты - если (id == 0) создать новую запись.
  2. Получить существующие записи из БД;
  3. Цикл существующих записей - Где (идентификатор существующей записи == получен id объекта) Обновить запись.
  4. Если запись существует в существующем записи, но не в полученных объекты - Удалить.

Это кажется наиболее логичным способом сделать это. Я использую NHibernate и мне было интересно, есть ли другой способ, которым я должен изучить. Любая помощь высоко ценится.

Ответы [ 2 ]

1 голос
/ 12 февраля 2009

Возьми мой ответ за то, что он стоит; Я говорю, что ваша логика цельна.

0 голосов
/ 16 февраля 2009

Если вы используете SQL Server 2008 (или можете использовать его), есть новый оператор «MERGE», который в основном делает все это.

В этом случае вы можете записать все свои данные во временную таблицу (в памяти или на диске), а затем обновить и вставить свои данные в таблицу назначения с помощью одного оператора MERGE.

Вот некоторые информационные сообщения о MERGE в SQL Server 2008:

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