Запрос по дискриминатору в NHibernate

Я немного искал это и не нашел ' т не включаю ничего. Можно ли создать запрос 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 на самом деле не является свойством класса, а просто столбцом в таблице, это явно не работает . Казалось бы, излишним иметь и свойство для этой цели, и дискриминатор, если только нет Как можно использовать свойство в качестве дискриминатора?

5
задан Tyler Treat 17 January 2011 в 00:03
поделиться