Лучший способ управлять таблицей Nhibernate Relation - PullRequest
2 голосов
/ 18 ноября 2010

Мне интересно, есть ли лучший способ управления таблицами отношений в Nhibernate.В настоящее время, когда пользователь впервые создает ИИ, можно просто позвонить. Сохранить и все в порядке.Но когда они загружают его и вносят изменения, я не просто хочу удалить все соответствующие записи и воссоздать их.Я хочу, чтобы он удалял записи, которые больше не действительны, и создавал новые, оставляя те, которые еще действительны, и только в базе данных.

В настоящее время я просматриваю список и удаляю те, которыебольше не выбираются, затем добавьте новые в список.Не похоже, что это лучший способ, так как я перебираю список дважды.Есть ли в LINQ решение с одним вкладышем?

В основном то, что я сейчас делаю:

Проход по A и удаление того, что не в B
Перемещение по B и добавлениене в A

Спасибо заранее.

1 Ответ

3 голосов
/ 18 ноября 2010

Не уверен, что ваши А и В на самом деле.

Если они являются дочерними элементами какой-либо корневой сущности, вы можете использовать cascade = "all-delete-orphan". NH удалит всех детей, которых больше нет в списке.

Если вы управляете списком корневых объектов, вам нужно пройти через это дело «найти добавленные элементы / найти удаленные элементы».

var removedItems = oldList.Except(newList);
var addedItems = newList.Except(oldList);
...