Я читал в Интернете о проблемах, с которыми другие коллеги-разработчики сталкиваются с nhibernte. Однако я не нашел случая, похожего на проблему, с которой я столкнулся.
Проблема связана с суррогатными ключами в отображении nhibernate. До использования следующего сопоставления я использовал свойство Target в качестве первичного ключа. Поскольку в других таблицах поле Target называется внешним ключом, размер базы данных увеличивается больше, чем я ожидал. Поэтому мне пришлось использовать ключ Surragote в качестве первичного ключа и сделать Target уникальным свойством для сохранения целостности данных.
<id type="guid" name="Id">
<generator class="guid.comb" />
</id>
<property name="Target" unique="true" unique-key="Target" />
<property name="IsProcessed" />
Проблема связана с ISession.SaveOrUpdate (). Я понимаю, что nhibernate будет пытаться сохранить, когда свойство id пусто и обновляет в противном случае. Есть ли способ сказать nHibernate, чтобы выбрать, используя уникальное свойство, прежде чем пытаться вставить?
Ваши комментарии действительно ценятся.