LinQ Group By


  • 普通
var list = from s in db.mm_ShopMas
                       where s.IsStop == false
                       group s by s.SpaceId;

   Sql执行时会取全部数据。

  • into
var list = from s in db.mm_ShopMas
                       where s.IsStop == false
                       group s by s.SpaceId into g
                       select g;

  Sql执行时会取全部数据。

  Select
  

var list = from s in db.mm_ShopMas
                       where s.IsStop == false
                       group s by s.SpaceId into g
                       select new { g.Key,Total = g.Count()};

  Sql执行的结果为汇总数据。

  • 多列Group
var list = from s in db.mm_ShopMas
                       where s.IsStop == false
                       group s by new { s.SpaceId ,s.TradeId} into g
                       select new { g.Key, Total = g.Count() };

  Sql执行结果为汇总数据。

 select new {g.Key.TradeId,g.Key.SpaceId,Tocal=g.Count()}

select new {g.Key,Tocal=g.Count()}

  • 表达式
var list = from s in db.mm_ShopMas
                       where s.IsStop == false
                       group s by new { IdFirst = s.ShopId / 1000 } into g
                       select new { g.Key, Total = g.Count() };

Sql执行结果为汇总数据: