我在 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/

10-13 08:07