QueryOver中的Nhibernate .class等效项

reg*_*EAH 5 nhibernate hql nhibernate-mapping queryover

以下是针对特定类型的类的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
Run Code Online (Sandbox Code Playgroud)

我想知道是否有使用QueryOver等效?

And*_*ker 5

您可以使用GetTypeIsInQueryOver扩展方法来实现:

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

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