2012-01-09 5 views
3

私はこの状況をNHibernateに持っています。私は基本的な具象クラス(Animal)と2つの共用サブクラス(DogとCat)を持っています。ユニオンサブクラスから特定のサブクラスのみを返します

私は動物が具象クラスであるので、私はしたくないサブクラスをフィルタクエリは、この

   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

中!ありがとう! –

関連する問題