NHibernate отображение таблицы ссылок - PullRequest
1 голос
/ 24 апреля 2009

У меня есть довольно запутанный сценарий / дизайн, чтобы разобраться, и я был бы очень признателен за совет или понимание.

Я пытаюсь отобразить следующее без особого успеха.

<class name="CalEvent" table="tb_calEvents" lazy="false" >

<id name="id" column="id">
  <generator class="hilo"/>
</id>

<property name="summary"/>
---snip----

<bag name="categories"  table="tb_calEvent_category" lazy="false">
  <key column="parentID"/>
  <one-to-many class="Category"/>
</bag>

//////////////////

<class name="Category" table="tb_calEvent_category" lazy="false">

<id name="id" column="id" unsaved-value="0">
  <generator class="hilo"/>
</id>

<property name="categoryID"/>

<property name="parentID"/>

<property name="categoryType"/>

таблица категорий

[id] bigint NULL [parentID] bigint NULL [categoryType] nvarchar (255) NULL [categoryID] int NULL CONSTRAINT [tb_calEvent_category_fk] FOREIGN KEY ([parentID])

Представленная выше таблица tb_calEvent_category, похоже, была настроена как своего рода справочная таблица. Есть 3 различных вида категорий, каждая в своей таблице; CatergoryType - это ссылка на таблицу, в которой живет категория, а categoryID - на первичный ключ этой таблицы.

У меня нет проблем с получением calEvents, но я не могу точно добавить или обновить.

У кого-нибудь есть мысли о том, как я могу сделать это? Является ли это возможным? Или мне придется прыгать через несколько обручей, чтобы успешно добавить и обновить calEvents до БД?

Я предполагаю, что эта таблица была настроена таким образом, чтобы сократить количество объединений или, возможно, добавить другие категории. Хммм ..

спасибо

1 Ответ

2 голосов
/ 24 апреля 2009

Я думаю, что это ваша главная проблема:

<id name="id" column="id" unsaved-value="0">   
    <generator class="hilo"/> 
</id>

<property name="categoryID"/>

Когда вы пытаетесь установить идентификатор категории дважды.

Это, вероятно, больше похоже на то, что вам нужно:

 <id name="id" column="categoryID" unsaved-value="0">   
    <generator class="hilo"/> 
 </id>

Плюс, вероятно, лучше использовать генератор идентификаторов sqlserver (native), убедиться, что для столбца установлен идентификатор в sqlserver, и убедиться, что отношения FK такие, какими они должны быть.

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