2009-06-04 6 views
2

私は次の形式のデータ設定を持っています:State 1-> n County 1-> n CityLinqToSQLでどのように結合を行うのですか?

私の州のオブジェクト内に、pより大きい人口を持つ少なくとも1つの都市を含むすべての郡を返したいとします。私は、SQLでこれを書くことだった、それは次のようになります。

select distinct co.* 
from County co join City ci on ci.CountyID = co.ID 
where ci.Population > @p 
and co.StateCode = @StateCode 

たぶんSQLが良く最適化することができた(と私は確かにそこにポインタを感謝します)が、それはポイントではありません...

とにかく、私はLinq、Stateクラスでこれをやりたい私のコード(明らかにコンパイルしていない)は次のようになります:

var q = 
    from co in Counties 
    where co.Cities // uh-oh, now what? 

どうやってやりますか?

答えて

6

あなたが関連性を持っていると仮定すると...

var q = from co in Counties 
     where co.Cities.Any(city =>city.Population > p) 
     select co; 

それとも単に:

var q = Counties.Where(co => co.Cities.Any(city => city.Population > p)); 
+0

マークは、あなたが私の翼の下に風です。 :) –

+0

私はラムダの:)非常にエレガントなソリューションが大好き –

関連する問題