2012-01-09 27 views
3

我在NHibernate中有這種情況。我有一個基礎具體類(動物)和兩個聯合子類(狗和貓)。只返回聯合子類中的某些子類

我想要一個查詢,過濾器,我不想子類,像這樣

   var result = session.CreateCriteria<Animal>() 
           // .Add(NotOfType(Cat)) 
           .List<Animal>(); 

因爲動物是一個具體的類,有一個這樣的表,我想檢索所有的動物,除了貓(包括「通用」動物和狗)

這可能嗎?

回答

4

每個實體都有一個叫做class的特殊屬性。

var result = session.CreateCriteria<Animal>() 
        .Add(Expression.Not(Expression.Eq("class", typeof(Cat))) 
        .List<Animal>(); 

或HQL

from Animal a where a.class != 'Cat' 
+0

,完美的工作!謝謝! – 2012-02-01 13:20:20