@@sql linq into group
LINQ to SQL八大子句
一、LINQ查询子句概述
1.查询(Query)是一组指令,这些指令可以从一个或多个给定的数据源中检索数据,并指定检索结果的数据类型和表现形式。
2.查询表达式是一种查询语法表示的表达式,由一组用类似于SQL的声明性语法编写的子句组成。
3.每一个字句可以包含一个或多个C#表达式,而这些表达式本身又可能是查询表达式或包含查询表达式。
4.查询表达式和其他表达式一样,可以用在C#表达式有效的任何上下文中。
二、子句说明
1.LINQ查询表达式必须以from子句开头,并且必须以select或group子句结束。
2.在第一个from子句和最后一个select或group子句之间,查询表达式可以包含一个或多个where、orderby、group、join、let子句,甚至from子句。
3.另外,join和group子句还可以使用into子句指定临时标识符号
代码实例:
int[] values = {0,1,2,3,4,5,6,7,8,9};
car value = from v in values
where v<3
select v;
三、基本子句
from子句
where子句
select子句
group子句
orderby子句
into子句
join子句
let子句
1.from子句
LINQ查询表达式必须包含from子句,且以from子句开头。如果该查询表达式还包含子查询,那么子查询表达式也必须以from子句开头。from子句指定查询操作的数据源和范围变量。其中,数据源不但包括查询本身的数据源,而且还包括子查询的数据源。范围变量一般用来表示源序列中的每一个元素。
注意:from子句指定的数据源的类型必须为IEnumerable、IEnumerable<T>或前两者的派生类型
2.where子句
在LINQ查询表达式中,where子句指定筛选元素的逻辑条件,一般由逻辑运算符(如逻辑“与”、逻辑“或”)组成。一个查询表达式可以不包含where子句。每一个where子句可以包含1个或多个布尔表达式。
3.group子句
在查询表达式中,group子句对查询的结果进行分组,并返回元素类型为
IGrouping<TKey,TElenment>的对象序列。
注意:TKey指定IGrouping<TKey,TElement>的键的类型,TElement指定IGrouping<TKey,TElement>的值的类型。访问IGrouping<TKey,TElement>类型的值的方法与访问IEnumberable<T>的元素的方式非常相似。
4.orderby子句
在LINQ查询表达式中,orderby子句可以对查询结果进行排序。排序方式可以为“升序”或“降序”,且排序的键可以为一个或多个
注意:LINQ查询表达式对查询结果的默认排序方式为“升序”。
5. into子句
在LINQ 查询表达式中,into子句可以创建一个临时标识符,使用该标识符可以存储group、join或select子句的结果。
6. join子句
在LINQ查询表达式中,join子句比较复杂,它可以设置两个数据源之间的关系。当然,这两个数据源之间必须存在相关联的属性或值。join子句可以实现一下3种联接关系。
(1)内部联接,元素的联接关系必须同时满足被联接的两个数据源。
(2)分组联接,含有into子句的join子句。
(3)左外部联接
7. let子句
在LINQ查询表达式中,let子句可以创建一个新的范围变量,并且使用该变量保存表达式中的结果。let子句指定的范围变量的值只能通过初始化操作进行赋值,范围变量的值一旦被初始化,将不能再被改变。
四、总结
1.from子句 :指定查询操作的数据源和范围变量
2.where子句:筛选元素的逻辑条件,一般由逻辑运算符(如逻辑“与”、逻辑“或”)组成
3.select子句:指定查询结果的类型和表现形式
4.orderby子句:对查询结果进行排序,可以为“升序”或“降序”
5.group子句:对查询结果进行分组
6.into子句:提供一个临时标识符。该标识符可以充当对join、group或select子句的结果的引用
7.join子句:连接多个查询操作的数据源
8.let子句:引入用于存储查询表达式中的子表达式结果的范围变量
————————————————
版权声明:本文为CSDN博主「胡本故」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Cuihuahuaa/article/details/79789776