У меня есть ICriteria
, который возвращает свойства из суперкласса Animal
. Теперь я хочу включить в результаты несколько свойств из подкласса Bird
. Для других подклассов эти свойства должны возвращать null
. Я использую наследование таблицы на подкласс. Есть ли способ сделать это, не добавляя много DetachedCriteria
? NHibernate уже оставил соединения на таблицах подклассов; Есть ли способ проецировать значения из этих объединений?
Обновление: Мне нужно иметь возможность сортировать и фильтровать свойства подкласса, и весь запрос должен поддерживать подкачку страниц.
Вот моя модель:
public abstract class Animal
{
public long Id { get; set; }
public string Name { get; set; }
}
public class Cat : Animal
{
public int WhiskerCount { get; set; }
}
public class Bird : Animal
{
public long WingSpan { get; set; }
}
С учетом следующих таблиц:
Animal:
Id | Name
----+--------------
1 | Sylvester
2 | Tweety
3 | Maru
4 | Big Bird
Cat:
Id | WhiskerCount
----+--------------
1 | 6
3 | 12
Bird:
Id | Wingspan
----+--------------
2 | 0.5
4 | 10
Я хочу следующий набор результатов:
Id | Name | Wingspan
----+------------+-------------
1 | Sylvester | <null>
2 | Tweety | 0.5
3 | Maru | <null>
4 | Big Bird | 10