1.Into Clause
用来将select, join,或者group的结果存储到一个临时变量中。
目的:在之后的查询中需要使用此结果。例如:
var developersGroupedByLanguage =
from d in developers
group d by d.Language into developersGrouped
select new {
Language = developersGrouped.Key,
DevelopersCount = developersGrouped.Count()
};
foreach (var group in developersGroupedByLanguage) {
Console.WriteLine ("Language {0} contains {1} developers",
group.Language, group.DevelopersCount);
}
2.Let Clause
let子句将一个子表达式的结果存储到一个变量中。
与SQL语句相比较,let子句产生的变量类似于计算列。即该列是通过对表中若干列进行某种计算获得的。例如对OrderDetail中的UnitPrice * Count得到某商品的总价。
var categoriesByProductsNumberQuery =
from c in categories
join p in products on c.IdCategory equals p.IdCategory
into productsByCategory
let ProductsCount = productsByCategory.Count()
orderby ProductsCount
select new { c.IdCategory, ProductsCount};
foreach (var item in categoriesByProductsNumberQuery) {
Console.WriteLine(item);
}