2012-01-13 50 views
0

我一直用我的好朋友谷歌來查找問題的解決方案,這是據我已經得到運行的想法之前試圖通過具有一對多的關係價值訂購 - LINQ查詢

基本上我有3個表

開發與物業1到許多關係(發展可以有很多屬性) 物業有PropertyRent 1一對多的關係(一個屬性可以有很多的租金)

的我遇到的問題是租賃價值排序,這是我迄今爲止:

var developmentListSorted = (from d in ContextEntity.Properties 
          where developments.Contains(d.Development.DevelopmentId) 
          orderby d.PropertyRents.Select(x=>x.PropertyRentValue).OrderBy(x=>x.CompareTo(x)) 
          select d.Development).Distinct().ToList(); 

現在沒有OrderBy,我得到一個很好的未排序列表。我真的需要能夠通過PropertyRentValue進行排序。

屬性'development'是一個ID數組。

請讓我知道,如果我需要進一步澄清這一點。

非常感謝。

+0

我認爲你試圖做的查詢沒有任何意義,因爲你想在最後得到明顯的結果 - 如果你想通過兩級深入的一對多關係進行排序,那麼這將不起作用。 – 2012-01-13 10:19:01

+0

擺脫了獨特的,並得到同樣的問題... – Matt 2012-01-13 10:39:39

回答

2

我假設ContextEntity.Developments,您可以訪問的發展

var developmentListSorted = 
       from d in ContextEntity.Developments 
        where developments.Contains(d.DevelopmentId) 
        orderby 
        d.Properties.Min(x=>x.PropertyRents.Min(y=>y.PropertyRentValue)) 
        select d; 

這是假設你是由最小租值排序,你可以的Min都occurances改變Max得到最大值或甚至使用Average

+0

完美 - 作品魅力 - 謝謝! – Matt 2012-01-13 11:09:14