データベースのセットアップが間違っている可能性が高いと言われているので、以下にキー フィールドとクエリを含むテーブルを示します。
CREATE TABLE Presentations (
Id INT NOT NULL IDENTITY(1, 1),
SpeakerId INT NOT NULL,
CONSTRAINT PK_Presentations PRIMARY KEY (Id),
CONSTRAINT FK_Presentations_Speaker FOREIGN KEY (SpeakerId) REFERENCES Speakers (Id)
)
CREATE TABLE Speakers (
Id INT NOT NULL IDENTITY(1, 1),
CONSTRAINT PK_Speakers PRIMARY KEY (Id)
)
以下を実行すると:
presentations = presentations.OrderBy(x => x.Speaker.FirstName);
生成されたクエリは次のようになります。
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])
これは緊急の問題です、誰か助けてくれませんか?
関連する質問:
- StartsWith を使用した ASP.NET MVC2 Linq Where 句
- SubSonic Simple Repository、LINQ、ASP.NET MVC を使用して生成された Funky Sql
助けてくれて本当にありがとう。