例如,如果你有一个Apple:IWhatever,还有一个Orange:IWhatever你想找到它们两个因为它们是IWhatevers,你需要在NHibernate中做些什么?
它完全依赖于HQL或条件查询,还是您还必须在映射中执行某些操作?如果有映射要求,Fluent NHibernatee可以支持吗?
答案 0 :(得分:4)
对于Criteria,您无需映射它。只是:
session.CreateCriteria<IWhatever>()
.List<IWhatever>();
请记住,您只能对IWhatever中存在的字段进行查询/排序/投影。
答案 1 :(得分:1)
您可以执行Union SubClass映射。不幸的是,它在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>