Linq按日期获取客户组,然后按类型获取

Nit*_*rpe 12 c# linq asp.net-mvc-3

我正在制作报告,以便在C#中使用LINQ显示客户.我想表明不.每种类型的客户.

有3种类型的客户注册,客人和经理.我希望按客户的注册日期和客户类型进行分组.即如果今天有3位客人,4位注册人员和2位经理人员.明天4,5和6是注册的.然后报告应显示当天注册的客户数量.每种类型的单独行.

DATE        TYPEOF CUSTOMER    COUNT
31-10-2013  GUEST              3
31-10-2013  REGISTERED         4
31-10-2013  MANAGER            2
30-10-2013  GUEST              5
30-10-2013  REGISTERED         10
30-10-2013  MANAGER            3
Run Code Online (Sandbox Code Playgroud)

像这样 .

var subquery = from eat in _customerRepo.Table
                           group eat by new { yy = eat.CreatedOnUTC.Value.Year, mm = eat.CreatedOnUTC.Value.Month, dd = eat.CreatedOnUTC.Value.Day } into g
                           select new { Id = g.Min(x => x.Id) };




var query = from c in _customerRepo.Table
                        join cin in subquery.Distinct() on c.Id equals cin.Id
                        select c;
Run Code Online (Sandbox Code Playgroud)

通过上面的查询,我得到当天注册的最小cutomer事先谢谢

Ham*_*yan 26

var query = _customerRepo.Table
     .GroupBy(c => new {Date = c.Date.Date,  Type = c.TypeOfCustomer})
     .Select(g => new 
                   {
                       Date = g.Key.Date,
                       Type = g.Key.Type, 
                       Count = g.Count
                   }
            )
     .OrderByDescending (r = r.Date);
Run Code Online (Sandbox Code Playgroud)