nhibernate의 getBycriteria에 의해 다시 철회되는 결과 세트를 어떻게 제한합니까?

StackOverflow https://stackoverflow.com/questions/380775

문제

나는 더 나은 이름을 원하기 위해 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();

    }
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top