2016-12-02 1 views
0

첫 번째 쿼리에서 첫 번째 쿼리 반환 상위 10/20 리 코드, 두 번째 쿼리 반환 총 레코드 수가 두 번 있습니다. 두 쿼리 모두 동일한 필터 조건을 사용해야합니다.여러 쿼리에서 NHibernate 매개 변수를 공유합니다.

필터 조건에 사용 된 필터 조건 및 매개 변수를 한 곳에서 작성하고 두 쿼리에서 모두 사용하려면 어떻게해야합니까?

조건 변수 변수에 저장할 수 있으며 두 쿼리 모두에서 사용할 수 있지만 매개 변수를 공유하는 방법은 무엇입니까? 내가 HQL

답변

1

확인이 유사한 Q &을 사용하고

: Nhibernate migrate ICriteria to QueryOver

행 수에 대한 NHiberante에서 기본적으로 지원이 있습니다. 아웃 - 오브 - 박스 준비를 총 얻을 -의 그것은 부품, 전망은 ... 이제 우리는 단지 그것의 기본 기준을 어디에 금액을 가지고 새로운 기준을 만들기 위해 변압기를 사용할 수

// the QueryOver 
var query = session.QueryOver<MyEntity>(); 

일부 쿼리를 보자 행 개수

// GET A ROW COUNT query (ICriteria) 
var rowCount = CriteriaTransformer.TransformToRowCount(query.UnderlyingCriteria); 

다음 단계는`Future`을 제안하기위한

// ask for a list, but with a Future, to combine both in one SQL statement 
var list = query 
    .Future<MyEntity>() 
    .ToList(); 

// execute the main and count query at once 
var count = rowCount 
    .FutureValue<int>() 
    .Value; 

// list is now in memory, ready to be used 
var list = futureList 
    .ToList(); 
+0

upvote에를 dB로 왕복에 두 쿼리를 얻기 위해 미래를 사용하는 것입니다 –

관련 문제