[英]GroupBy and OrderBy using LINQ
我使用linq從數據庫獲取數據。 我想在同一請求上使用GroupBy和OrderBy。
我實際上有此代碼不起作用:
var mydata = _db.table1
.Join(_db.table2, h => h.col1, t => t.col2,
(h, t) => new ActivatedScripts()
{
col1 = h.col1, col2 = h.col2, col3 = (t.col3 == "Y"), col4 = ""
})
.GroupBy(z => z.col1).OrderBy(s => s.....);
OrderBy(s => s...)
建議我所有LINQ方法和一個著名的KEY,它與我的代碼中的任何列都不匹配。
編輯:
我按照官方指南對表格進行排序( http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/sorting-filtering-and-paging-with-the-entity-框架在asp-net-mvc應用程序中 )。
當我groupBy然后排序(我試圖先排序然后groupby)時,我有一個異常:
GroupBy
方法返回組的集合。 您可以輕松地對col1
列進行排序,因為那是每個組的Key
屬性:
.OrderBy(s => s.Key)
如果要對其他任何內容進行排序,則必須從組中的項目中獲取該值。 例如,如果您知道每個組中所有項目的值都相同,則可以從該組中的第一個項目獲取該值:
.OrderBy(s => s.First().col2)
您還可以使用聚合來計算組中所有項目的值,例如,對值的總和進行排序:
.OrderBy(s => s.Sum(x => x.col2))
您始終可以先訂購,然后對訂購的數據進行分組:
.Join(...).OrderBy(x => x.col1).GroupBy(x => x.col2)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.