LINQ to SQL

发布时间 2023-06-02 19:14:12作者: dreamw

@@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