Пропускать свойства при вызове session.Merge в NHibernate - PullRequest
1 голос
/ 31 октября 2011

Я хочу поддержать каскадное обновление "усеченных графов" в NHibernate.Скажем, у меня есть объект «Студент» и объект «Класс», в котором есть коллекция «Студенты».Коллекция «Студенты» нанесена на карту с «Каскадом всех».Теперь предположим, что в клиенте была изменена только сущность класса, поэтому я хочу, чтобы клиент мог отправлять только сущность класса без учеников.Мой подход состоит в том, чтобы позволить клиенту отправлять сущность класса с аннулированным свойством Students и дать DAL понять, что коллекция Students должна игнорироваться.К сожалению, когда NHibernate получает нулевое свойство class.Students при передаче в session.Merge, он отключает дочерних учеников от родительского класса, устанавливая их FK на ноль и / или удаляя их (в зависимости от конкретной опции каскада).Я ожидал бы, что NHibernate будет вести себя так только при получении пустой коллекции, а не когда коллекция аннулируется.Есть ли способ обойти это?Например, сказав NHibernate как-то пропустить обнуленные свойства во время слияния?

1 Ответ

0 голосов
/ 26 апреля 2012

Вы можете установить inverse = "true" для коллекции Student в сущности Class, чтобы она не очищала FK.

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