У меня есть таблица T1, в которой есть следующие столбцы:
- ID (int) - это первичный ключ
- Ссылка (int) - (не ноль)
- Имя (строка)
И вторая таблица T2 со столбцами:
- T2ID (int) - это первичный ключ
- Value1 (int)
- Значение2 (int)
- SomeOtherData (int)
Каждая запись из T1 имеет> 2 записи в T2: столбец Ref в T1 имеет значение из таблицы 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>
в коде у меня есть это, чтобы загрузить данные T2 для T1:
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 для загрузки свойства данных, а не PK?
Ура,
Alex