У меня есть следующий код:
if (collection["Filter"] == "2") {
presentations = presentations.Where(x => x.Speaker.FirstName.StartsWith("B")).
OrderBy(x => x.Speaker.FirstName);
}
это генерирует следующий sql:
SELECT [t0].[Description], [t0].[EventId], [t0].[Id], [t0].[PresentedOn],
[t0].[Slug], [t0].[SpeakerId], [t0].[Title], [t0].[Url]
FROM [Presentations] AS t0
LEFT OUTER JOIN [Speakers] AS t1 ON ([t1].[Id] = [t0].[Id])
WHERE ([t1].[FirstName] LIKE 'B' + '%')
ORDER BY [t1].[FirstName]
Проблема в том, что соединение должно быть:
LEFT OUTER JOIN [Speakers] AS t1 ON ([t1].[Id] = [t0].[SpeakerId])
Есть идеи, как исправить эту проблему?Связано с ASP.NET MVC2 Linq Where, используя StartsWith