2012-09-04 72 views
0

该查询从数据库返回的前25名畅销书,由客户:LINQ和投影的SUM()

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) 

请有人可以解释什么是投影的意思和这样的例子?

+3

http://blogs.msdn.com/b/ericwhite/archive/2008/04/22/projection的.aspx – sloth

回答

0

当您从查询中选择几个字段并将其创建/投影到新类型时,投影是与LINQ相关的术语。当你在查询中做select new时,你实际上在做投影。在你的情况下,你从查询表达式中选择g.Keyg.First().DESCRIPTION等字段,并创建一个BestSeller类型的新对象。

由于您的original questio n没有将total_quantity字段分配给任何因素,因此Jon Skeet会要求您将总和加到您的投影中。

你需要看下面的文章MSDN上关于投影:

Formulate Projections
Query Expression Syntax Examples: Projection