5

以下是特定类型类的 HQL 查询

select a from Animal a
where TYPE(a) in ('Cat', 'Dog')
and a.sex = 'Male'
order by a.name


select a from Animal a
where a.class in ('Cat', 'Dog')
and a.sex = 'Male'
order by a.name

我想知道是否有使用 QueryOver 的等价物?

4

1 回答 1

5

您可以使用GetTypeQueryOverIsIn扩展方法来完成此操作:

session.QueryOver<Animal>()
    .Where(a => a.GetType().IsIn(new[] { "Cat", "Dog" })
    /* .. etc */

您应该使用您的 NHibernate 映射使用的鉴别器值。

于 2012-07-16T14:15:18.770 回答