NHibernate: использование столбца дискриминатора в качестве отношения многих к одному - PullRequest
1 голос
/ 06 августа 2010

У меня есть две таблицы, которые я пытаюсь отобразить. Table1 имеет отношение «многие к одному» с Table2 через FK, fk_table2_id.

В отображении table1 у меня также есть дискриминатор и подкласс, определенные так:

<class name="MyAssembly.MyClass1, MyAssembly" table="table1" discriminator-value="null">
<discriminator column="fk_table2_id" type="int"/>

<many-to-one name="Category" class="MyAssembly.MyClass2, MyAssembly" column="fk_table2_id"/>

<subclass name="MyAssembly.MyDerivedClass1, MyAssembly" discriminator-value="1"/>

При попытке сохранить MyClass1 / MyClass2 я получаю следующую ошибку:

SetUp : System.ArgumentOutOfRangeException : Index was out of range. Must be non-negative and less than the size of the collection.

Имя параметра: индекс

Теперь я почти уверен, что это связано с тем, что я использую один столбец как для дискриминатора, так и для отношений. Это действительно ограничение? Как мне обойти это?

1 Ответ

3 голосов
/ 06 августа 2010

Я думаю, что я нашел обходной путь на случай, если кому-то еще это понадобится:

<discriminator type="int" formula="fk_table2_id"/>
...