例如,如果您有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