2010-11-18 2 views
2

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

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

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

Loop через A и удалить, Что не в B
Loop через B и добавить, Что не в A

Заранее спасибо.

ответ

3

Не знаете, каковы ваши A и B на самом деле.

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

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

var removedItems = oldList.Except(newList); 
var addedItems = newList.Except(oldList); 
Смежные вопросы