2011-01-19 121 views
2

我有一個包含日期的對象MyObject。 我有以下查詢,其中TheMonth和的某些地方是參數:linq組聲明

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() 
        }; 

我想組的結果,以使每天只發生一次。變量2是一個計數,並且此時計數行正在爲每個身份發生重複,而不是每天唯一。

謝謝。

回答

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 2011-01-19 23:49:55