Funky Sql, созданный с использованием простого репозитория SubSonic, LINQ и ASP.NET MVC

У меня такой код:

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 Clause с использованием StartsWith


person Daniel Draper    schedule 16.07.2010    source источник


Ответы (1)


Я не думаю, что поставщик SubSonic Linq очень «зрелый».

person Craig    schedule 16.07.2010
comment
Я ценю ваш комментарий, но он не очень полезен. Это не первая проблема с дозвуком, и я соглашусь с вами. - person Daniel Draper; 16.07.2010
comment
Не ответ. Вы намеревались вместо этого сделать это комментарием к OP? - person allonym; 16.07.2010