我正在尋找一種在複雜對象上執行GroupBy的方法,而不是一個屬性。問題是我想在IQueryable上這樣做,因爲在這種情況下從表中獲取所有數據是一個非常糟糕的主意。如何使用IQueryable對複雜對象執行GroupBy
我們使用的是Entity Framework 6.1。
類看起來是這樣的:
public class Pin {
public Guid Id {get;set;}
public Guid PageId {get;set;} /* this is the foreign key to our Pages-table */
public PageClass Page {get;set;} /* this is a relation */
}
我需要在時間的某一頁已經被「釘」報告,打印頁面的名稱爲好。
現在我的代碼如下所示:
var pinnedPages = GetAll().GroupBy(x => x, comparer);
foreach (var pinnedPage in pinnedPages)
{
var numberOfTimesPinned = pinnedPage.Count();
var pin = pinnedPage.Key;
//write a line to the report
}
但如果對我的PageId集團,pinnedPage.Key
返回一個GUID,很明顯,而我需要爲我的報告需要整個Page
對象。
我也嘗試過實現自定義比較器,但是這不能被轉換爲SQL,顯然這就是爲什麼這也不起作用。
顯然,'GetAll()'返回'IEnumerable'。你可以去'IQueryable'嗎? –
也請顯示'Page'類。 –