LINQ基础资料

前言

LINQ(Language Integrated Query )语言集成查询,是一组用于C#和VB语言的拓展,在.net中它允许VB或者C#代码以操作内存数据的方式,查询数据库。

LINQ的三个主要组成部分是:

标准查询运算符:这些是形成LINQ模式的扩展方法。 它在序列上运行并形成一个API,可以查询任何.NET数组。 LINQ中的标准查询运算符允许您执行诸如确定序列中是否存在值,序列求和等函数.API支持的查询运算符为:

语言扩展:当LINQ主要作为.NET框架库实现时,LINQ定义了可选的语言扩展。 这使查询成为第一类语言构造,并提供编写查询的语法。

LINQ提供程序:这些类是一组类,它们生成一个对特定数据源执行相同查询的方法。 不同的提供程序定义了LINQ的不同风格:LINQ to SQL、LINQ to XML、LINQ to Objects

LINQ语法:

第一种写法:类似SQL语法,查询语句

var resUsers = from u in userList
where u.Age > 20
select new {u.UId,u.UserName,u.Age};

要点解析:必须以from开头。以select或者group by结尾。from a ,其中a其中元素, in 数据源。中间以各种条件连接,比如where 、order by结尾select 查出这个筛选之后的a。当然也可以使用匿名对象或者新的已构造的对象

常见子句有:

from子句:指定查询操作的数据源和范围变量

where子句:筛选元素的逻辑条件,返回值是一个bool类型

select子句:指定查询结果的类型和表现形式

orderby子句:对查询结果进行排序(升序或者降序)

group子句:对查询结果进行分组

into子句:提供一个临时标识符,该表示可充当对join/group/select子句结果的引用

join子句:连接多个查询操作的数据源

let子句:引入用于存储查询表达式中的子表达式结果的范围变量

第二种写法:lambda表达式(简洁且功能更多,推荐)

var resUsers2 = userList.Where<UserInfo>(u => u.Age > 20).Select(u => new { u.UId,u.UserName,u.Age});

posted @ 2020-07-18 12:05  阿业  阅读(98)  评论(0编辑  收藏  举报