문제

HQL에서 다음 기준 쿼리를 어떻게 표현 하시겠습니까?

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

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

HQL에는 "In"키워드가 있다는 것을 알고 있지만, 이해할 수 있듯이 키워드는 "... (1, 2, 3, 4, 5)와 같은 것보다 하위 쿼리와 함께 사용하는 것입니다. 또는 그런. 그렇지 않다면, 나는 수정을 기꺼이 받아 들일 것입니다.

감사합니다 /Erik

도움이 되었습니까?

해결책

이 시도:

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<Foo>();

다른 팁

이것도 작동합니다

ICriteria sc = session.CreateCriteria(typeof(Foo));
sc.Add(Restrictions.In("id",new[] { 1, 2 }));
siteList = sc.List();
session.Close();
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top