2011-05-25 88 views
0

如何通過嵌套表列像LINQ to SQL的ORDER BY

FROM a IN Repository 
FROM b IN a.Users 
ORDERBY b.Name 
SELECT a 

訂購的結果,但它不工作,我想在 'A' 表中選擇所有whitch是爲了通過名稱列在關係表「 b',我怎麼能? 謝謝。

UPD:我很抱歉。我的錯是我的粗心。也許,我沒有注意到後處理的結果元素列表再次訂購。感謝所有人!

+0

這是真的linq-to-sql嗎?那種情況下的數據上下文在哪裏?或者它是linq-to-objects? – 2011-05-25 13:41:15

+0

這種情況下的電路問題是什麼? – 2011-05-26 16:13:45

+0

謝謝。請參閱更新上。 – 2011-06-08 07:43:04

回答

0

不知道這是最好的方式,但我會做到這一點

var query = from ab in 
       (from a in Repository 
       select new 
       { 
       A = a, 
       B = a.Users.OrderBy(u => u.Name).FirstOrDefault() 
       }) 
      orderby ab.B.Name 
      select ab.A; 
+0

謝謝。請參閱更新上。 – 2011-06-08 07:43:20

0

表格之間是否存在關係?你有導航屬性?在這種情況下,使用方法:

from a in repository.a 
orderby a.Users.Name 
select a; 
+1

用戶是一個集合 – Aducci 2011-05-25 12:36:26

+0

哈,我不會很容易。你不能使用b表中的列,因爲這是集合... ,我還沒有導航屬性 – 2011-05-25 12:38:01

+0

謝謝。請參閱更新上。 – 2011-06-08 07:43:47

0

您也可以將屬性添加到部分類,然後用另一財產代替。

public partial class Repository 
{ 
    public IOrderedEnumerable<User> OrderedUser 
    { 
     get 
     { 
      return this._User.OrderByDescending(u => u.Name); 
     } 
    } 
}