У меня есть (на самом деле, несколько) связь между двумя объектами, родительский объект - Пользователь , а дочерний объект - Инцидент .
Между Пользователь и Инцидент :
определены четыре взаимосвязи.
- Свойство Пользователь
_
создал из Инцидент относится к Пользователю , создавшему Инцидент
- Свойство Пользователь
_
изменил , кто изменил Инцидент
- Пользователь
_
сообщил и наконец
- Пользователь
_
ответственность
Все эти четыре свойства Инцидент ссылаются на Пользователь объект. Как это в отображении:
<many-to-one name="User_created" class="User, WebbData" fetch="select">
<column name="created_by" not-null="true" />
</many-to-one>
<many-to-one name="User_modified" class="User, WebbData" fetch="select">
<column name="modified_by" not-null="false" />
</many-to-one>
<many-to-one name="User_reported" class="User, WebbData" fetch="select">
<column name="reported_by" not-null="true" />
</many-to-one>
<many-to-one name="User_responsible" class="User, WebbData" fetch="select">
<column name="responsible" not-null="false" />
</many-to-one>
Я хочу написать выражение nHibernate для извлечения всех инцидентов, созданных конкретным пользователем, но я не знаю, как написать это выражение ...
Вот что я получил до сих пор:
return session.CreateCriteria(typeof(Incident))
.CreateCriteria("User")
.Add(Expression.Eq("Id", UserID))
.List<Incident>();
но как, черт возьми, я говорю nHibernate, что он должен использовать отношение Пользователь _
созданный , а не одно из трех других?