此查询按客户返回我们数据库中排名前25位的畅销商:
var query = from bs in db.MYDATABASE
where bs.COMPANY == "MY COMPANY"
group bs by bs.PRODCODE into g
orderby g.Sum(x => x.MQTY) descending
select new BestSeller
{
product_code = g.Key,
product_description = g.First().DESCRIPTION,
total_quantity = g.Sum(x => x.MQTY)
};
var top25 = query.Take(25);
我已经told in this question我需要在以下行为以下LINQ查询创建投影:
total_quantity = g.Sum(x => x.MQTY)
有人可以解释投影的含义和例子吗?
答案 0 :(得分:0)
当您从查询中选择几个字段并将其创建/投影到新类型时,Projection是关于LINQ使用的术语。当您在查询中执行select new
时,您实际上正在进行投影。在您的情况下,您从查询表达式中选择g.Key
和g.First().DESCRIPTION
等字段,并创建类型为BestSeller
的新对象。
由于您的original questio n没有分配任何total_quantity
字段,这就是Jon Skeet要求您为投影添加总和的原因。
您需要在MSDN上查看有关投影的以下文章:
Formulate Projections
Query Expression Syntax Examples: Projection