【发布时间】:2010-07-05 08:25:43
【问题描述】:
我有一个包含这些列的表 T1:
- ID (int) - 是主键
- Ref (int) - (not null)
- 名称(字符串)
还有一个带有列的第二个表 T2:
- T2ID (int) - 是主键
- 值1(整数)
- 值2(整数)
- SomeOtherData (int)
T1 中的每条记录在 T2 中都有 >2 条记录:T1 中的 Ref 列具有来自 T2 表 T2ID 列的值。
如何为这种情况编写映射文件? 目前我使用这个:
<class name="Class1" table="T1" >
<id name="ID" column="ID">
<generator class="increment"/>
</id>
<property name="Name"/>
<set name="Data" inverse="true" fetch="select">
<key>
<column name="T2ID"/>
</key>
<one-to-many class="Class2"/>
</set>
</class>
<class name="Class2" table="T2" >
<id name="ID" column="T2ID">
<generator class="increment"/>
</id>
<property name="Value1"/>
<property name="Value2"/>
<property name="SomeOtherData"/>
</class>
在代码中我有这个来为 T1 加载 T2 数据:
NHibernateUtil.Initialize( class1.Data );
生成此 SQL:
SELECT
T2ID, Value1, Value2, SomeOtherData
FROM T2
WHERE T2ID = <**an ID column from T1 for which I'm loading T2 data!**>
问题是如何告诉 nHibernate 使用 Ref 列中的值来加载 Data 属性,而不是 PK?
干杯, 亚历克斯
【问题讨论】:
标签: nhibernate mapping