Как вы делаете объединение в LinqToSQL? - PullRequest
2 голосов
/ 04 июня 2009

У меня есть настройки данных следующей формы: State 1-> n County 1-> n City.

В моем объекте State я хочу вернуть все округа, в которых есть хотя бы один город с населением, превышающим p. Если бы я написал это в sql, это было бы:

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

Может быть, SQL лучше оптимизировать (и я, безусловно, буду признателен за указатели там), но это не главное ...

В любом случае, я хочу сделать это в Линке, в государственном классе. Мой код (очевидно, не компилируется) теперь выглядит так:

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

Как ты это делаешь?

1 Ответ

6 голосов
/ 04 июня 2009

Если у вас есть свойства ассоциации ...

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));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...