2011-01-19 6 views
2

날짜가 들어있는 MyObject 개체가 있습니다. 하루에 한 번만 발생하도록linq group by statement

var MyQuery = from a in MyModelDC.MyTable 
       where a.Month == TheMonth 
       where a.Year == TheYear 
       select new MyObject 
        { 

         var1 = a.Day, 

         var2 = (from b in MyModel.MyTable 
           where b.Month == a.Month 
           where b.Year == a.Year 
           select b.Identity).Count() 
        }; 

내가 그룹에 결과를 싶습니다 TheMonth 및 TheYear 매개 변수가있는 곳 나는 다음과 같은 쿼리를 가지고있다. Var 2는 카운트이며 현재 Identity의 각 발생에 대해 카운트 행이 하루에 고유하지 않고 반복됩니다.

감사합니다. 내가 제대로 귀하의 요구 사항을 이해한다면

답변

3

, 나는 이것이 당신이 물어 무엇을 할 것인가 생각 :

여기
var myQuery = from date in MyModelDC.MyTable 
       where date.Month == TheMonth && date.Year == TheYear 
       group date by date.Day into dayGroup 
       select new 
       { 
        Day = dayGroup.Key, 
        Count = dayGroup.Count() 
       }; 

우리가, 우리가 그룹의 각 항목을이 참조하는 일까지 각 항목 계산 첫 번째 그룹 있도록 해당 그룹의 특정 날짜에 대한 항목 만 포함합니다.


출력으로 MyObject를를 사용하려면 업데이트,이 작업을 수행 할 수 있습니다

var myQuery = from date in MyModelDC.MyTable 
       where date.Month == TheMonth && date.Year == TheYear 
       group date by date.Day into dayGroup 
       select new MyObject 
       { 
        var1 = dayGroup.Key, 
        var2 = dayGroup.Count() 
       }; 
+0

확인을, 나는 개념을 얻을; MyObject를 어떻게 추출합니까? – frenchie

+0

dayGroup에는 .Key 속성이없고 dayGroups에만 사용할 수 있습니다. 당신은 명확히 할 수 있습니까? – frenchie

+0

@frenchie : 나의 실수 - 개정 된 편집을 참조하십시오. 나는 대답하고 내 대답을 확인하는 것을 잊었다. 나는 사과. MyObject를 추출하는 것에 관해서는, 당신이 필요로하는 것이라면 언제나 나의 select 문을 당신이 가진 것으로 대체 할 수 있습니다. –