当前位置:  开发笔记 > 编程语言 > 正文

NHibernate:HQL相当于Criteria Expression.In()?

如何解决《NHibernate:HQL相当于CriteriaExpression.In()?》经验,为你挑选了1个好方法。

您如何在HQL中表达以下Criteria查询?

var idArray = new int[] { 1, 2, 3, 4, 5 };

Session.CreateCriteria(typeof(Foo))
    .Add(Expression.In("Id", idArray)
    .List();

我知道HQL中有一个"in"关键字,但据我所知,该关键字用于子查询,而不是像"......(1,2,3,4,5)中的Id"或者这样的.如果情况并非如此,我很乐意接受更正.

谢谢/ Erik



1> Darin Dimitr..:

试试这个:

var idArray = new int[] { 1, 2, 3, 4, 5 };
var foos = Session
    .CreateQuery("from Foo f where f.Id in (:ids)")
    .SetParameterList("ids", idArray)
    .List();

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有