LINQ的基本语法包含如下的8个上下文关键字,这些关键字和具体的说明如下:
from...in子句 | 指定查询操作的数据源和范围变量 |
select子句 | 指定查询结果的类型和表现形式 |
where子句 | 筛选元素的逻辑条件,一般由逻辑运算符组成 |
group...by子句 | 对查询进行分组 |
orderby子句 | 对查询结果进行排序,可以是“升序”或降序“” |
jion子句 | 连接多个查询操作的数据源 |
let子句 | 引入用于存储查询表达式中子表达式结果的范围变量 |
into子句 | 提供一个临时标识符,充当对jion,group或select子句的结果 |
1、from..in
LINQ查询表达式必须包含from子句,且以from子句开头。如果该查询表达式还包含子查询,那么子查询表达式也必须以from子句开头。from子句指定查询操作的数据源和范围变量。其中,数据源不但包括查询本身的数据源,而且还包括子查询的数据源。范围变量一般用来表示源序列中的每一个元素。
//创建linqDB数据库上下文实例
LinqDBDataContext DB = new LinqDBDataContext();
//linqtosql 查询结果
//使用from …in子句
var query = from user in DB.UserInfo
where user.ID < 5
select user;
//指定数据源
GridView1.DataSource = query;
//绑定数据源
GridView1.DataBind();
2、select
在查询表达式中, select 子句可以指定将在执行查询时产生的值的类型。 该子句的结果将基于前面所 有子句的计算结果以及 select 子句本身中的所有表达式。 查询表达式必须以 select 子句或 group 子 句结束。
3、where
在LINQ查询表达式中,where子句指定筛选元素的逻辑条件,一般由逻辑运算符(如逻辑“与”、逻辑“或”)组成。一个查询表达式可以不包含where子句。每一个where子句可以包含1个或多个布尔表达式。
4.group子句
在查询表达式中,group子句对查询的结果进行分组,并返回元素类型为
IGrouping<TKey,TElenment>的对象序列。
注意:TKey指定IGrouping<TKey,TElement>的键的类型,TElement指定IGrouping<TKey,TElement>的值的类型。访问IGrouping<TKey,TElement>类型的值的方法与访问IEnumberable<T>的元素的方式非常相似。
5.orderby子句
在LINQ查询表达式中,orderby子句可以对查询结果进行排序。排序方式可以为“升序”或“降序”,且排序的键可以为一个或多个
注意:LINQ查询表达式对查询结果的默认排序方式为“升序”。
6. into子句
在LINQ 查询表达式中,into子句可以创建一个临时标识符,使用该标识符可以存储group、join或select子句的结果。
7. join子句
在LINQ查询表达式中,join子句比较复杂,它可以设置两个数据源之间的关系。当然,这两个数据源之间必须存在相关联的属性或值。join子句可以实现一下3种联接关系。
(1)内部联接,元素的联接关系必须同时满足被联接的两个数据源。
(2)分组联接,含有into子句的join子句。
(3)左外部联接
8. let子句
在LINQ查询表达式中,let子句可以创建一个新的范围变量,并且使用该变量保存表达式中的结果。let子句指定的范围变量的值只能通过初始化操作进行赋值,范围变量的值一旦被初始化,将不能再被改变。