我在NHibernate中有这种情况。我有一个基础具体类(Animal)和两个union子类(Dog和Cat)。
我想要一个过滤我不想要的子类的查询,类似这样的
var result = session.CreateCriteria<Animal>()
// .Add(NotOfType(Cat))
.List<Animal>();
因为动物是一个具体的类,有一个表格,我想要检索除猫以外的所有动物(包括“通用”动物和狗)
这可能吗?
答案 0 :(得分: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'