2009-04-27 3 views
3

단일 쿼리로 이것을 작성하는 좋은 방법을 생각할 수 없습니다. 두 개의 계산 쿼리를 하나의 부울 쿼리로 결합하십시오.

int count1 = query1.Count(); 
int count2 = query2.Count(); 

return count1 > count2; 

내가 부울 값을 반환하고 서버에 한 번 평가를 가져옵니다 하나의 쿼리를 작성하는 방법에 관심이 있습니다.

SQL을 사용하는 것이 아니라 LINQ를 사용하여이 방법을 작성하는 방법에 관심이 있습니다. 나는 심각하게 당신이 LINQ 만들 얻을 수 의심, 그러나

SELECT CASE WHEN (SELECT COUNT(*) FROM Products) 
     > (SELECT COUNT(*) FROM Orders) 
      THEN CAST(1 as bit) 
      ELSE CAST(0 AS BIT) 

:

+0

검색어가 무엇인지 알려 주시면 도움이 될 수 있습니다. – Kibbee

+0

그들은 무엇이든 될 수 있습니다. query1은 db.Customers이고 query2는 db.Products라고 가정합니다. –

답변

4

그것은 동일한 서버 호출이 관련이없는 쿼리를 실행하려고 가치가 아니지만, 여기있다

return query1.Count() > query2.Count(); 

시도 이런 종류의 쿼리. 대신 저장 프로 시저를 호출해야합니다.

var result= query1.Count() > query2.Count(); 

return result; // result is of type bool 

편집 뭐가 잘못

+0

아니요, 두 개의 별도 쿼리를 실행 한 결과를 비교합니다. –

0

는 :

당신이 정말로 서버에 하나 개의 쿼리로 실행하려는 경우, 당신은 동적 쿼리를 실행 DataContext.ExecuteQuery를 사용할 수 있습니다.

+0

아니요, 두 개의 개별 쿼리를 실행 한 결과를 비교합니다. –

관련 문제