В SQL я бы сказал:
select a.*
from TableA a
left join TableB b on a.Type = b.Type and a.SomeDate < b.AnotherDate
where b.ID is null
При этом будут выбраны все записи в Таблице A, в которых нет записей в Таблице B с той же Type
и более поздней датой.
В LinqКак вы это делаете?
from a in TableA
join b in TableB on a.Type equals b.Type into j // what about the comparator?
from x in j.DefaultIfEmpty()
where x == null
select a;
Спасибо!
РЕДАКТИРОВАТЬ:
Было предложено несколько хороших ответов, каждый из которых адресконкретная потребность выражена в этом вопросе, но все они в основном обходные пути.Все они так или иначе переводят во вложенные «существующие» запросы, тогда как SQL в вопросе - это один аккуратный запрос без вложенности.Случай, приведенный здесь, является лишь примером общего принципа;то, что я действительно хотел бы видеть, это выражение Linq, которое будет переводить (примерно) синтаксис вышеуказанного SQL-запроса.