Исключение внешнего ключа после обновления с nHibernate 3.2 до 3.4 или выше - PullRequest
0 голосов
/ 28 апреля 2020

Мы используем nHibernate с SQL 2014. Во всех таблицах мы используем DBVersion (я полагаю, для целей управления версиями / обнаружения переходного состояния). Помимо этого идентификатора также используется столбец.

<version name="DBVersion" column="DBVersion" type="Int64" generated="never" unsaved-value="0"/>

<id name="ID" column="ID" type="guid" >
     <generator class="guid.comb" />
   </id>

В указанных c таблицах, имеющих отношение к внешнему ключу, версия 3.4 вызывает исключение внешнего ключа, в то время как с версиями 3.2.0 до 3.3.5 работает хорошо.

<many-to-one name="Obj" cascade="all-delete-orphan" column="Obj_ref" class="Data.Obj, Data" lazy="false" />

При случайных испытаниях мы обнаружили, что добавление несохраненного значения к идентификатору во всех таблицах также решило проблему.

<id name="ID" column="ID" type="guid"  unsaved-value="undefined">
    <generator class="guid.comb" />
  </id>

Я попытался создать пример проекта из ну, но я не могу воспроизвести исключение FK.

Я не смог найти подходящих исправлений / изменений, связанных с этим, в журнале изменений или в Google. Кто-нибудь может направить меня, если это действительно правильный / рекомендуемый подход и почему он работает?

Спасибо, Ранга

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