使用SubSonic Simple Repository,LINQ和ASP.NET MVC生成的Funky Sql

我有以下代码:

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

我不认为SubSonic Linq提供商非常“成熟”。