nhibernate의 getBycriteria에 의해 다시 철회되는 결과 세트를 어떻게 제한합니까?
-
22-08-2019 - |
문제
나는 더 나은 이름을 원하기 위해 nhibernate dao .. lets를 myclassdao라고 부릅니다.
다음 코드를 작성하고 있습니다.
MyClassDao myDao = new MyClassDao();
var values = myDao.GetByCriteria(Restrictions.Eq("Status", someStatusValue));
단위 테스트에서 이것을 사용하여 데이터베이스에서 값을 되 찾는 것입니다. 그러나 내 의견으로는 너무 긴 테스트를 실행하는 데 30 초 이상이 걸리고 있습니다.
SQL에서 나는 이와 같은 것을 달성하기 위해 다음과 같은 일을 할 것입니다.
set rowcount 5
select * from whatever_table
set rowcount 0
결과 세트의 크기를 제한하기 위해 nhibernate 쿼리 언어를 사용하지 않고 방법이 있습니까?
해결책
icriteria.setmaxresults () 사용
다른 팁
iQuery (HQL을 사용하는 경우) 또는 ICRiteria (기준 API를 사용하는 경우)에서 setMaxResults 메소드를 사용할 수 있습니다.
저장소에 이와 같은 것이 있습니다.
public IQueryable<T> SelectWithLimit<T>(int maxResults) where T : class
{
ICriteria criteria = SessionWrapper.Session.CreateCriteria(typeof (T)).SetMaxResults(maxResults);
return criteria.List<T>().AsQueryable();
}
제휴하지 않습니다 StackOverflow