NHibernate каскад и обратный - PullRequest
       0

NHibernate каскад и обратный

1 голос
/ 31 августа 2010

У меня есть три отображения следующим образом:

public MainChapterMap()
{
    // other properties

    HasMany(x => x.ClientSpecific).KeyColumn("MainChapterId");
}

public MainChapterClientMap()
{
    // other properties

    References(x => x.MainChapter).Column("MainChapterId");
    HasMany(x => x.Details).KeyColumn("MainChapterClientId");
}

public MainChapterClientDetailMap()
{
    // other properties

    References(x => x.MainChapterClient).Column("MainChapterClientId");
}

MainChapter имеет много специфичных для клиента глав.Специфичные для клиента главы (MainChapterClient) имеют много переводов (MainChapterClientDetail)

Правила удаления должны быть следующими:

  1. При удалении MainChapter
    • Удалить строку MainChapterClient
    • Удалить строку MainChapterClientDetail
  2. При удалении MainChapterClient
    • НЕудалить строку MainChapter
    • Удалить строку MainChapterClientDetail
  3. При удалении MainChapterClientDetail
    • НЕ удаляйте MainChapter row
    • НЕ удаляйте MainChapterClientDetail row (s)

Но я не обращаю внимания на то, что я получаю эту ошибку:

удаленный объект будет повторно сохранен каскадом (удалить удаленный объект из ассоциаций) [Entities.MainChapterClient # 39]

Я не уверен, как настроить мои каскады,Любая помощь приветствуется!

1 Ответ

1 голос
/ 15 ноября 2011

Вам необходимо удалить ссылку с обеих сторон:

MainChapterClient.Details.Remove(instance);
instance.MainChapterClient = null;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...