LINQ to SQL全称基于关系数据的.NET语言集成查询,用于以对象形式管理关系数据,并提供了丰富的查询功能。
Linq中where查询与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句。
目前需要注意的是,在 LINQ 中,查询变量本身不执行任何操作并且不返回任何数据,查询变量本身只是存储查询命令,它只是存储在以后某个时刻执行查询时为生成结果而必需的信息。此概念称为“延迟执行”。若要强制立即执行任意查询并缓存其结果,可以调用 ToList() 或 ToArray() 方法。
一、LINQ的基本语法包含如下的8个上下文关键字,这些关键字和具体的说明如下:
二、LINQ中where查询
where子句,它是LINQ表达式的元素筛选机制,除了开始和结束的位置,它几乎可以出现在LINQ表达式的任意位置上。
在一个LINQ表达式中,可以有where子句,也可以没有;可以有一个,也可以有多个;多个where子句之间的逻辑关系相当于逻辑“与”,每个where子句可以包含1个或多个bool逻辑表达式,这些条件成为谓词,谓词逻辑之间用的是“&&”“||”等而不是SQL中的and 、or
select 表名.字段名,表名.字段名
from表1 INNER JOIN表2 ON连接条件
INNER JOIN表3 ON连接条件
//Linq查询
from变量1 in数据源
join 变量2 in 数据源 on 连接条件
join 变量3 in 数据源 on连接条件
select
1.用from子句指定数据源
每个LINQ查询表达式都以from子句开始,from子句包括以下两个功能。
(1)指定查询将采用的数据源
(2)定义一个本地变量,表示数据源中单个数据
2.使用select子句指定目标数据源
select子句指定在执行查询是产生的结果类型,其格式为:select element,其中elment参数指定查询结果中元素的类型及初始化方式。
3.使用where子句指定筛选条件
通常一个LING查询不会如前面的示例代码那么简单,通常还需要对数据源中的元素进行过滤。只有符合条件的元素,才能参与查询结果的计算。
LINQ中,where子句格式为:where expression,其中,expression是一个逻辑表达式,返回布尔值。
where子句中的条件表达式,可以用&&和||指定多个条件的逻辑运算关系。其中,&&表示逻辑并,||表示逻辑或。
4.使用orderby子句进行排序
在一些场合,还需要对查询结果进行排序。在LINQ中,通过orderby子句对查询结果进行排序操作。
orderby子句格式为:orderby element [ascending|descending],其中element是要进行排序的字段,可以是数据源中的数据,也可以是对元素操作的结果。
[ascending|descending]是排序类型,ascending为升序,descending为降序,默认请客下为ascending。
5.使用group子句进行分组
在LINQ中,用group子句实现对查询结果的分组操作。group子句的常用格式为:group element by key。其中,element表示作为查询结果返回的元素,key表示分组条件。
group子句返回类型为IGrouping<TKey,TElement>的查询结果。