Я немного искал это и не нашел ' т не включаю ничего. Можно ли создать запрос Hibernate для возврата набора объектов на основе дискриминатора?
У меня есть класс AbstractUser, который расширен конкретными классами UserTypeA и UserTypeB. Я использую модель иерархии таблиц для сопоставления моих классов в NHibernate, поэтому UserTypeA и UserTypeB хранятся в одной таблице с разными значениями дискриминатора. Вот мое свойство отображения дискриминатора:
<discriminator column="Type" type="string"/>
У меня есть столбец в моей таблице, который содержит имя типа пользователя. Мне интересно, можно ли с его помощью выполнить запрос NHibernate.
Я пробовал это:
public IList<DomainBase> FindByType(string typeName, Type type)
{
string query = "from " + type.Name + " k where k.Type = " + typeName;
return Session.CreateQuery(query).List<DomainBase>();
}
Но поскольку Type на самом деле не является свойством класса, а просто столбцом в таблице, это явно не работает . Казалось бы, излишним иметь и свойство для этой цели, и дискриминатор, если только нет Как можно использовать свойство в качестве дискриминатора?