我在 NHibernate 中有这种情况。我有一个基本的具体类(Animal)和两个联合子类(Dog 和 Cat)。
我想要一个过滤我不想要的子类的查询,像这样
var result = session.CreateCriteria<Animal>()
// .Add(NotOfType(Cat))
.List<Animal>();
因为 Animal 是一个具体的类,所以有一个表,我想检索除 Cat 之外的所有动物(包括“通用”动物和狗)
这可能吗?
最佳答案
每个实体都有称为 class
的特殊属性。
var result = session.CreateCriteria<Animal>()
.Add(Expression.Not( Expression.Eq("class", typeof(Cat)))
.List<Animal>();
或在 HQL
from Animal a where a.class != 'Cat'
关于c# - 仅从联合子类中返回某些子类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8791070/