zoukankan      html  css  js  c++  java
  • Linq使用Group By经验总结

    1.计数
    var q =  from p in db.Products  group p by p.CategoryID into g  select new {  g.Key,  NumProducts = g.Count()  }; 
    语句描画:Linq运用Group By和Count失掉每个CategoryID中产物的数目。
    说明:先按CategoryID归类,取出CategoryID值和各个分类产物的数目。
     
    2.带请求计数
    var q =  from p in db.Products  group p by p.CategoryID into g  select new {  g.Key,  NumProducts = g.Count(p => p.Discontinued)  }; 
    语句描画:Linq运用Group By和Count失掉每个CategoryID中缀货产物的数目。
    说明:先按CategoryID归类,取出CategoryID值和各个分类产物的断货数目。 Count函数里,运用了Lambda表达式,Lambda表达式中的p,代表这个组里的一个元素或对象,即某一个产物。
     
    3.Where约束
    var q =  from p in db.Products  group p by p.CategoryID into g  where g.Count() >= 10  select new {  g.Key,  ProductCount = g.Count()  }; 
    语句描画:依据产物的―ID分组,查询产物数目大于10的ID和产物数目。这个示例在Group By子句后运用Where子句查找全部至少有10种产物的类别。
    说明:在翻译成SQL语句时,在最外层嵌套了Where请求。
     
    4.多列(Multiple Columns)
    var categories =  from p in db.Products  group p by new  {  p.CategoryID,  p.SupplierID  }  into g  select new  {  g.Key,  g  }; 
    语句描画:Linq运用Group By按CategoryID和SupplierID将产物分组。
    说明:既按产物的分类,又按供应商分类。在by后面,new出来一个匿名类。这里,Key实践上质是一个类的对象,Key包括两个Property:CategoryID、SupplierID。用g.Key.CategoryID可以遍历CategoryID的值。
     
    5.表达式(Expression)
    var categories =  from p in db.Products  group p by new { Criterion = p.UnitPrice > 10 } into g  select g; 
    语句描画:Linq运用Group By前往两个产物序列。第一个序列包括单价大于10的产物。第二个序列包括单价小于或等于10的产物。
    说明:按产物单价可否大于10分类。其结果分为两类,大于的是一类,小于及等于为另一类。 
  • 相关阅读:
    网站要满足用户的期望
    在网站内如何引导你的用户
    网站要一步一步的引导用户
    photoshop:制作sprite拼贴图片
    photoshop:css3插件
    注册表修改PSD关联photoshop
    photoshop:找不到增效工具入口点
    ajax:$.get()
    Photoshop支持ico输出
    JavaScript数字精度丢失问题总结
  • 原文地址:https://www.cnblogs.com/sky6699/p/4882212.html
Copyright © 2011-2022 走看看