2012-09-04 102 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