zoukankan      html  css  js  c++  java
  • LINQ↔Lambda↔SQL 互相“翻译”

    一个星期又过去了,又该总结一些零散的知识点。

    这次是关于SQL、Lambda、LINQ查询的一些知识,我使用LINQPad来做试验的,关于LINQPad怎么使用就不说了,下载下来自己摸索一下就会了

    准备两张表

    表名分别是:ATE_ItemData和StationProcessCode,至于数据类型嘛,这个自己随便定义吧。

    1、首先是查询全部数据

    1 SQL:
    2     select * from ATE_ItemData
    3 Lambda:
    4     ATE_ItemData.Select(a=>a)
    5 LINQ:
    6     from a in ATE_ItemData select a
    View Code

    2、查询部分数据

     1 SQL:
     2     select * from ATE_ItemData AS A
     3     inner join StationProcessCode AS S
     4     on A.ProcessCode=S.ProcessCode
     5 Lambda:
     6     ATE_ItemData.Join(StationProcessCode,
     7     a=>a.ProcessCode,b=>b.ProcessCode,(a,b)=>new
     8     {a.ID,a.PDO,b.TP1_Voltage,b.TP2_Voltage}
     9 LINQ:
    10     from a in ATE_ItemData
    11     join b in StationProcessCode equals b.ProcessCode
    12     select new{a.ID,a.PDO,b.TP1_Voltage,b.TP2_Voltage}
    View Code

    3、根据条件查询

    1 SQL:
    2     select ID,SN,PDO from where ID=1
    3 Lambda:
    4     ATE_ItemData.Where(a=>a.ID==1).Select(c=>new{c.ID,c.SN,c.PDO})
    5 LINQ:
    6     from a in ATE_ItemData where a.ID==1 select new{a.ID,a.SN,a.PDO}
    View Code

    4、多表联合查询(我只用两张表查询)

     1 SQL:
     2     select * from ATE_ItemData AS A
     3     inner join StationProcessCode AS S
     4     ON A.ProcessCode=S.ProcessCode
     5 Lambda:
     6     ATE_ItemData.Join(StationProcessCode, a=>a.ProcessCode,
     7     b=>b.ProcessCode, (a,b)=> new     
     8     {a.ID,a.PDO,a.SN,b.TP1_Voltagge,TP2_Voltage})
     9 LINQ:
    10     from a in ATE_ItemData
    11     join b in StationProcessCodes
    12     on a.ProcessCode equals b.ProcessCode
    13     select new {a.ID,a.PDO,a.SN,b.TP1_Voltage,TP2_Voltage}
    View Code

     5、排序查询

      5.1、正序排序

    1 SQL:
    2     select * from ATE_ItemData order by ID
    3 Lambda:
    4     ATE_ItemData.OrderBy(c=>c.ID)
    5 LINQ:
    6     from a in ATE_ItemData orderby a.ID select a
    View Code

      5.2、倒序排序

    1 SQL:
    2     select * from ATE_ItemData order by ID desc
    3 Lambda:
    4     ATE_ItemData.OrderByDescending(c=>c.ID)
    5 LINQ:
    6     from a in ATE_ItemData
    7     orderby a.ID descending
    8     select a
    View Code

    6、分组查询

     1 SQL:
     2     分组求和无条件查询
     3     select count(*) from ATE_ItemData group by PDO
     4     分组求和有条件查询
     5     select count(*) from ATE_ItemData group by PDO having count(*)>8
     6 Lambda:
     7     分组求和无条件查询
     8     ATE_ItemData.GroupBy(a=>a.PDO)。Select(b=>new{Num=b.Count()})
     9     分组求和有条件查询
    10     ATE_ItemData.GroupBy(a=>a.PDO).Where(b=>(b.Count()>8)).Select(b=>new{Num=b.Count()})
    11 LINQ:
    12     分组求和无条件查询
    13     from a in ATE_ItemData
    14     group by a.PDO into b
    15     select new{Num=b.Count()}
    16     分组求和有条件查询
    17     from a in ATE_ItemData
    18     group by a.PDO into b
    19     where b.Count()>8
    20     select new{Num=b.Count()}
    View Code
  • 相关阅读:
    ubuntu 系统命令
    js模板引擎实例一
    读取页面上所有的checkbox
    使用fileReader实现图片预览
    html5中的audio标签针对IOS系统的兼容处理
    CSS单位
    使用变换属性的旋转和动画属性实现大风车效果
    css动画属性--轮播图效果
    php curl详解
    linux权限详解
  • 原文地址:https://www.cnblogs.com/LiGengMing/p/5154872.html
Copyright © 2011-2022 走看看