八大字句:
From …in子句:执行查询操作的数据源和范围变量
var q =
from c in db.Customers
from o in c.Orders
where c.City == "London"
select o;
Select子句:指定查询结果的类型和表现形式
var q =
from c in db.Customers
select c.ContactName;
Where 子句:筛选元素的逻辑条件,一般由逻辑运算符组成
var q =
from c in db.Customers
where c.City == "London"
select c;
例如:使用where筛选在伦敦的客户
var q =
from c in db.Customers
where c.City == "London"
select c;
Group…by子句:对查询进行分组
var q =
from p in db.Products
group p by p.CategoryID into g
select g;
Orderby子句:对查询结果进行排序,可以分为降序、升序。
var q =
from c in db.Customers
orderby c.City, c.ContactName
select c;
Join子句:连接多个查询操作的数据源
var q =
from e in db.Employees
join o in db.Orders on e equals o.Employee into ords
from o in ords.DefaultIfEmpty()
select new
{
e.FirstName,
e.LastName,
Order = o
};
Let子句:引入用于存储查询表达式中的子表达式结果的范围变量
var query =
from sentence in strings
let words = sentence.Split(' ')//用空格分割成数组
from word in words
let w = word.ToLower()//把每个字母小写
where w[0] == 'a' || w[0] == 'e'
select word;
Into子句:提供一个临时标识符,充当对join、group或select子句的结果
var byHow = from how in vehicles
join trans in transports
on how.vehicleHow equals trans.How
into lst // 此lst是IEnumerable<transport> 类型
select new { How=how, Tlist = lst };