linq groupby问题

我有一个表有几列:HarvestID,HarvestDate,UserID提到主要的。 对于每个日期,每天都会有几个HarvestID。

到目前为止,我有以下linq查询:

UserID和TheMonth作为int和DateTime传入

var MyQuery = from h in MyDC.HarvestTable
              where h.UserID == TheUserID
              where h.HarvestDate.Month == TheMonth.Month
              where h.HarvestDate.Year == TheMonth.Year
              group h by h.HarvestDate.Day into TheDays
              from d in TheDays
              select new
              {
                  TheDay = d.HarvestDate.Date,
                  TheDayCount = (from c in TheDay
                                 select c.HarvestID).Count()
              };

我期待输出成为每天计数的列表。 该查询没有问题,但问题是,目前查询没有返回每一天的唯一行。 分组不起作用,我不知道为什么。 这段代码有什么问题?

谢谢。


它认为你的查询应该是

var MyQuery = from h in MyDC.HarvestTable
              where h.UserID == TheUserID
              where h.HarvestDate.Month == TheMonth.Month
              where h.HarvestDate.Year == TheMonth.Year
              group h by h.HarvestDate.Day into TheDays
              select new
              {
                  TheDay = TheDays.Key,
                  TheDayCount = TheDays.Count()
              };

这是一个很好的参考以上声明http://msdn.microsoft.com/en-us/vcsharp/aa336754.aspx#simple1


var MyQuery = from h in MyDC.HarvestTable
              where h.UserID == TheUserID
              && h.HarvestDate.Month == TheMonth.Month
              && h.HarvestDate.Year == TheMonth.Year
              group h by h.HarvestDate.Day into g
              select new
              {
                  TheDay = g.Key,
                  TheDayCount = g.Count()
              };

在没有数据的日子里,这不会给你零分 - 但应该给你一个数字。

http://msdn.microsoft.com/en-us/vcsharp/aa336746是LINQ示例的转到页面。

链接地址: http://www.djcxy.com/p/31905.html

上一篇: linq groupby question

下一篇: Saving the state of an activity before pressing the back button