【问题标题】:Return only certain subclasses from union subclass仅从联合子类返回某些子类
【发布时间】:2012-01-09 15:47:30
【问题描述】:

我在 NHibernate 中遇到过这种情况。我有一个基础具体类(Animal)和两个联合子类(Dog 和 Cat)。

我想要一个过滤我不想要的子类的查询,像这样

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

因为 Animal 是一个具体的类,所以有一个表,我想检索除 Cat 之外的所有动物(包括“通用”动物和狗)

这可能吗?

【问题讨论】:

    标签: c# nhibernate


    【解决方案1】:

    每个实体都有称为class 的特殊属性。

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

    或在 HQL 中

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

    【讨论】:

      猜你喜欢
      • 2014-04-01
      • 2011-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多