2011-01-19 123 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