0

此查询从我们的数据库中返回前 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);

在这个问题中有人告诉我,我需要在以下行为以下 LINQ 查询创建一个投影:

total_quantity = g.Sum(x => x.MQTY)

请有人能解释一下投影的含义和例子吗?

4

1 回答 1

0

当您从查询中选择几个字段并将其创建/投影到新类型时,投影是用于 LINQ 的术语。当您select new在查询中进行操作时,您实际上是在进行投影。在您的情况下,您正在从查询表达式中选择字段g.Keyg.First().DESCRIPTION并创建一个新的 type 对象BestSeller

由于您的原始问题没有将total_quantity字段分配给任何内容,因此 Jon Skeet 要求您将总和添加到您的投影中。

您需要在 MSDN 上查看以下有关投影的文章:

制定投影
查询表达式语法示例:投影

于 2012-09-04T07:17:37.767 回答