Вы не можете join
ни на чем другом, кроме equals
, но это, вероятно, не то, что вы хотите здесь в любом случае.Я бы сказал, что SQL-запрос написан неловко и что сравнение дат должно быть в предложении WHERE
, но я полагаю, что это субъективно.В любом случае, это только способ сделать это в Linq:
var results =
from sm in salesman
join s in sales on sm.salesmanid equals s.salesmanid
where s.salesdate < sm.promotiondate
group s by s.salesmanid into g
select new { salesmanid = g.Key, maxsales = g.Max(s => s.quantity) };
Примечание - исправлена опечатка на групповой строке