nhibernate запрашивает все объекты, реализующие интерфейс - PullRequest
3 голосов
/ 01 сентября 2010

Например, если у вас есть Apple: IWhither и Orange: IWh независимо и вы хотите найти их обоих, потому что они IWhatevers, что вам нужно делать в NHibernate?

Это полностью зависит от HQL или критерия запроса, или вы должны что-то сделать в отображении? Если есть требование по отображению, может ли Fluent NHibernatee его поддерживать?

Ответы [ 2 ]

4 голосов
/ 01 сентября 2010

Для критериев вам не нужно отображать это. Просто:

session.CreateCriteria<IWhatever>()
       .List<IWhatever>();

Помните, что вы сможете запрашивать / сортировать / проецировать только те поля, которые существуют в IWh независимо.

1 голос
/ 01 сентября 2010

Вы можете сделать отображение UnionSubClass.К сожалению, это не поддерживается в Fluent.

Ваше отображение будет что-то вроде:

<class name="IWhatever" abstract="true">
    <id name="Id">
    </id>

    <union-subclass name="Apple">
        <property name="Bla" type="int"/>
    </union-subclass>

    <union-subclass name="Orange">
        <property name="Bla" type="int"/>
    </union-subclass>
</class>
...