from c in db.Customers
join o in db.Orders on c.CustomerID
equals o.CustomerID into orders
select new
{
c.ContactName,
OrderCount = orders.Count()
};
from u in users
let number = Int32.Parse(u.Username.Substring(u.Username.Length - 1))
where u.ID < 9 && number % 2 == 0
select u
一个查询表达式中可以有1个或多个from子句
一个查询表达式中可以有0个或多个let子句,let子句可以创建一个临时变量
一个查询表达式可以有0个或多个排序方式,每个排序方式以逗号分割
一个查询表达式必须以select或者group by结束,select后跟要检索的内容,group by 是对检索的内容进行分组
from p in db.Products
group p by p.CategoryID into g
select new { g.Key, NumProducts = g.Count()};
最后一个into子句起到的作用是,将前面语句的结果作为后面语句操作的数据源