, если вы правильно сопоставили свою собственность в файле сопоставления:
<property name="PersonEnumType" type="MyApp.PersonEnumType, MyApp">
<column name="Person" default="1" />
</property>
Вы можете достичь того, что ищете, используя фильтры.
Я не знаю, единственное ли это решение, но вот оно:
Вы можете создать определение фильтра:
<filter-def name="PersonEnumTypeFilter">
<filter-param name="personType" type="MyApp.PersonEnumType, MyApp"/>
</filter-def>
и реализуйте его в своем отображении классов:
<filter name="PersonEnumTypeFilter" condition="(:personType & PersonEnumType) = PersonEnumType"/>
Теперь вы можете включить свой фильтр:
public IList<Person> SearchTest(PersonEnumType type)
{
SessionInstance.EnableFilter("PersonEnumTypeFilter").SetParameter("personType", type);
var q = SessionInstance.Query<Person>();
return q.ToList<Person>();
}
Подробнее о фильтрах можно прочитать здесь .