2013-04-16 2 views
0

Linq에서 GroupBy를 사용하는 방법에 대해서는 약간 혼란 스럽습니다. 나는 제품의 이름을 표시하고 나는 내가있는 행을 표시하려면 어떻게 지금은 단순히LINQ GroupBy 이름 및 개수를 얻으려면

Offers = o.Prod_ID.Count() 

을 가질 수 없습니다이

var context = new Model.Entities(); 
var query = from p in Product 
      join o in Offers on p.Prod_ID equals o.Prod_ID 
      orderby o.Prod_ID 
      select new { Name = p.Name, Offers = o.Prod_ID.Count()}; 
var products = query.ToList(); 

함께 왔어요, 제안의 카운트 필요 제품 이름 및 그것의 백작은 제안입니까?

+0

btw [여기] (http://www.dotnet-tricks.com/Tutorial/linq/UXPF181012-SQL-Joins-with-C)는 linq 및 SQL에서 예제가있는 Linq 쿼리에 대한 훌륭한 글이며 각 결과를 보여주는 결과입니다 조인 유형 –

답변

1

그룹을 원하는 것처럼 소리 대신 조인 범위

var query = from p in Product 
      join o in Offers on p.Prod_ID equals o.Prod_ID into offers 
      orderby p.Prod_ID 
      select new { Name = p.Name, Offers = offers.Count() }; 

이제 join 절 후, 당신이있어이 개 범위 변수 :

  • p (제품)
  • offers (해당 제품에 대한 쿠폰)

그래서 주문 번호를 p.Prod_ID으로 변경 한 다음 select 절의 쿠폰 수를 계산했습니다.

이 방법을 사용하면 제공 물이없는 제품에 대한 결과를 얻을 수 있지만 똑바로 내측 결합을하는 경우에는 완전히 손실 될 수 있습니다.