嗨,我有一個遺留DB到Person對象被映射其中,具有家庭成員的集合,例如:映射自表中的一個到許多使用非PK clolumns
class Person
{
...
string Id; /* 9-digits string */
IList<Person> Family;
...
}
PERSON表格如下:
Id: CHAR(9), PK
FamilyId: INT, NOT NULL
和其他幾個不相關的列。 我試圖使用FamilyId列映射Family集合到PERSON表,這不是上面提到的PK。 所以,我實際上有一個一對多的自我表參照。
我得到一個錯誤說「演員是無效的」,當我的映射是這樣的:
...
<set name="Family" table="Person" lazy="false">
<key column="FamilyId" />
<one-to-many class="Person" />
</set>
...
,因爲很明顯,加入NHibernate的是想說明的是在PK柱之間,Id和'Secondary'列FamilyId,而不是將FamilyId列加入自己。
有什麼想法嗎?
您是否試過使用Bag而不是Set或將屬性從IList更改爲ISet? – zoidbeck 2009-11-25 21:24:12
是的,嘗試過 - 但仍然拋出相同的錯誤。 – 2009-11-27 02:05:11