Пересмотр NHibernate без дублирования сущностей в памяти - PullRequest
0 голосов
/ 24 мая 2019

У меня вопрос, связанный с отношениями родитель / дети.
Мне нужно «объединить» двух родителей, переместив всех детей из одного в другого.
Эта операция предполагает, что не удаляет детей / сирот

Я устанавливаю конфигурацию parent / child, например, ниже (без ссылки на parent от child):

Component(x => x.PreferredCategories,
    m =>
    {
        m.HasMany<PreferredCategory>(Reveal.Member<PreferredCategories, IEnumerable<PreferredCategory>>("List"))
        .KeyColumn("CandidateId")
        .Cascade.SaveUpdate();
    });

И операция mergin настроена как просто добавление к parent2 дочерней формы parent1

public void Merge(Parent p)
{
    foreach(var item in p.List)
    {
        this.List.Add(item);
    }
}

Основная проблема состоит в том, что после слияния потомка от parent1 мы все еще видим этот объект в parent1, но после сохранения в db изменения сохраняются правильно.

Как достичь цели, чтобы у parent1 был пустой список после слияния объектов? по индивидуальной коллекции? или по понятному списку детей?

Большое спасибо!

...