-1
我需要訂購和頁面Linq查詢,但它應該通過訂購像這樣的自定義列進行: 如果我的實體Person是僱員,則它的名稱來自Employee表,如果不是它將來自Person表,這些不同。爲此,我有一個字段返回它的名稱,應用此規則,所以我需要按名稱排序,然後頁面查詢。Linq按合併列排序
問題: 這樣做,所有的表數據都需要加載來做這個排序,並且分頁,就像100.000行得到10.我想在DB中這個排序工作,在加載我的10行之前EF。
有沒有什麼辦法可以在我的查詢中使用「IF」子句來實現,使用數據庫只加載我的10行頁面?
也許是這樣的:
persons.OrderBy(p => (p.Employee != null)? p.Employee.Name : p.Name).Take(10);
不要忘記將其標記爲接受,如果你有你想要的信息... –
呃...你剛剛發佈瞭解決方案?!那麼問題是什麼? – usr
http://stackoverflow.com/questions/3007470/custom-sort-logic-in-orderby-using-linq另外,三元將被翻譯成CASE當在SQL中。 –