例如,如果您有Apple:IWhatever和Orange:无论您想如何找到它们,因为它们是IWhatevers,您需要在NHibernate中做什么?nhibernate查询实现接口的所有对象
它完全依赖于HQL或标准查询,还是在映射中还需要做些什么?如果有映射需求,流利NHibernatee可以支持它吗?
例如,如果您有Apple:IWhatever和Orange:无论您想如何找到它们,因为它们是IWhatevers,您需要在NHibernate中做什么?nhibernate查询实现接口的所有对象
它完全依赖于HQL或标准查询,还是在映射中还需要做些什么?如果有映射需求,流利NHibernatee可以支持它吗?
你可以做一个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>
为标准,你不需要映射。只是:
session.CreateCriteria<IWhatever>()
.List<IWhatever>();
请记住,你只能够查询/排序/项目存在于IWhatever的字段。
你仍然可以正常地映射苹果和桔子,或者是那种嵌套的类映射为具体类型的映射吗?你需要在你的查询中做什么特别的事情?干杯! – Berryl 2010-08-31 21:31:30
不幸的是它的映射:(至于查询,只要继续并做一个Session.CreateCriteria.For() –
Pedro
2010-09-01 03:15:45
看起来这是要走的路。[Ayende post](http://ayende.com /Blog/archive/2009/04/10/nhibernate-mapping-ndash-inheritance.aspx)建议你在使用HiLo的时候需要使用HiLo身份。另一个[SO帖子]支持这一点,并且还提出了解决方法让它做FNH吧干杯 – Berryl 2010-09-02 03:00:08