1
목록의 내용을 기반으로 결과 집합을 쿼리하고 싶습니다. 클래스 Foo
의 단일 인스턴스에 대해이 작업을 수행했지만 IList<Foo>
에 대해이 작업을 수행하는 방법을 잘 모르겠습니다.여러 값에 대해 쿼리하기 위해 nHibernate에서 기준을 설정하는 방법
public ICriteria CreateCriteria(Foo foo)
{
return session
.CreateCriteria<Component>()
.CreateCriteria("Versions")
.CreateCriteria("PublishedEvents")
.Add(Restrictions.And(Restrictions.InsensitiveLike("Name", foo.Name, MatchMode.Anywhere),
Restrictions.InsensitiveLike("Type", foo.Type, MatchMode.Anywhere)))
.SetCacheable(true);
}
을하지만 방법 매개 변수가 Foo
의 목록입니다 때 이걸 어떻게해야합니까 : 클래스 Foo
의 단일 인스턴스에 대한
그래서
이 작동?public ICriteria CreateCriteria(IList<Foo> foos)
{
return session
.CreateCriteria<Component>()
.CreateCriteria("Versions")
.CreateCriteria("PublishedEvents")
.Add(Restrictions.And(Restrictions.InsensitiveLike("Name", foo.Name, MatchMode.Anywhere),
Restrictions.InsensitiveLike("Type", foo.Type, MatchMode.Anywhere)))
.SetCacheable(true);
}
이런 종류의 작업을 수행하는 더 좋은 방법은 무엇입니까? – AwkwardCoder
유일한 대안은 Restrictions.In()을 사용하여 컬렉션을 전달하는 것이지만 InsensitiveLike를 수행하고 있으므로 각 쿼리를 추가해야합니다. 이 요청을하기 위해 필요한 실제 SQL을 작성하면 위의 방법이 완벽합니다. – lomaxx