2009-11-10 38 views
0

以下使用羅斯文(Northwind)數據庫並列出包含四列的產品組:最低價,最高價,平均價格和總價。如何按照LINQ查詢的新{}部分中包含的列進行排序?

如何按總價格排序?

var products = from product in Products 
group product by product.Supplier into groupedProducts 
//orderby groupedProducts.Key.TotalPrice; 
select new 
{ 
    groupedProducts.Key.CompanyName, 
    LowestPrice = groupedProducts.Min(p => p.UnitPrice), 
    HighestPrice = groupedProducts.Max(p => p.UnitPrice), 
    AveragePrice = groupedProducts.Average(p => p.UnitPrice), 
    TotalPrice = groupedProducts.Sum(p => p.UnitPrice) 
}; 
//order by groupedProducts.Key.TotalPrice; 

回答

4

這應該工作:

var products = (from ...).OrderBy(item => item.TotalPrice); 
1

這個怎麼樣?

var products = from product in Products 
       group product by product.Supplier into groupedProducts 
       let totalPrice = groupedProducts.Sum(p => p.UnitPrice) 
       orderby totalPrice 
       select new 
       { 
        groupedProducts.Key.CompanyName, 
        LowestPrice = groupedProducts.Min(p => p.UnitPrice), 
        HighestPrice = groupedProducts.Max(p => p.UnitPrice), 
        AveragePrice = groupedProducts.Average(p => p.UnitPrice), 
        TotalPrice = totalPrice 
       }; 
相關問題