我有两张桌子,我正试图映射。 Table1通过FK,fk_table2_id与Table2有多对一的关系。
在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.
参数名称:index
现在我很确定这与我使用一列同时用于鉴别器和关系这一事实有关。这真的是一个限制吗?我该如何解决它?
答案 0 :(得分:3)
我认为我得到了解决方法以防其他人需要它:
<discriminator type="int" formula="fk_table2_id"/>