Linq оставил соединение с нетривиальным условием
Это хорошо, это производит левое соединение
var q =
from c in categories
join p in products
on c equals p.Category into ps
from p in ps.DefaultIfEmpty()
select new { Category = c, ProductName = p == null ? "(No products)" : p.ProductName };
Но что, если я хочу сделать что-то вроде этого:
...
on p.date between c.startdate and c.enddate
...
1 ответ
Решение
var q =
from c in categories
join p in products
on c equals p.Category into ps
from p in ps.DefaultIfEmpty()
where p.date >= c.startdate && p.date <= c.enddate
select new { Category = c, ProductName = p == null ? "(No products)" : p.ProductName };