2010-03-07 3 views
1

기본적으로 테이블의 총 레코드 수는 물론 테이블의 결과 집합을 반환하는 엔터티 프레임 워크 쿼리를 실행하는 방법을 찾고 있습니다. 나는 하나의 쿼리로 eto를 해보고 싶다. 나는 내가 데이터베이스를 두 번 왕복하는 것처럼 보이지만 쿼리를 실행할 수 있다는 것을 안다.엔터티 프레임 워크로 여러 쿼리를 실행하거나 여러 값을 반환합니다.

누구에게 아이디어가 있습니까?

답변

1

당신은 함께 예를 들어 그것을 할 수 :

var list = context.UserSet.Where(u => u.IsSystemAdmin == 1).Select(u => new {User = u, Count = context.UserSet.Count()}).ToList(); 

그것은 IsSystemAdmin은 전체 테이블의 사용자 1 additionaly 수에 설정 한 사용자를합니다.

하지만 이것은 바보 같은 해결책입니다. 이들은 두 개의 별도의 쿼리이므로 독립적으로 쿼리해야합니다. 테이블에 IsSystemAdmin을 가진 사용자가 없으면 카운트도받지 않습니다. 그것은 또한 더 빨리하지 않을 것입니다. 두 가지 질문에 충실하십시오.

왕복은 나쁘지 않습니다. 여러 상황에서 특히 1-n 관계를 사용하여 두 개의 쿼리를 호출하는 것이 좋습니다. 1-n 릴레이션에 Include을 사용하면 특히 두 번 이상 할 때 끔찍한 SQL이 생성됩니다. Include없이 전화를 걸고 1-n 탐색 속성을 별도로로드하는 것이 좋습니다.

관련 문제