私はEntity Framework CTP 5を「コードのみ」(SQL Server 2008)で使用しています。私はDbContextから返されたエンティティを持っていますが、そこから子コレクションにアクセスし、そこから1つの項目を選択します。ここに私のLINQ文はです:なぜSingleOrDefaultを使用すると、生成されたSQLに「どこ」が追加されないのですか?
Question currentQuestion = currentTopic.Questions.SingleOrDefault(x => x.IsCurrent);
これは、次のSQLを生成します:
SELECT
[Extent1].[Id] AS [Id],
[Extent1].[CreatedAt] AS [CreatedAt],
[Extent1].[IsCurrent] AS [IsCurrent],
[Extent1].[Xml] AS [Xml],
[Extent1].[TopicId] AS [TopicId]
FROM [dbo].[Questions] AS [Extent1]
WHERE [Extent1].[SessionId] = 24
マイ "IsCurrent" 制限は全く参照されていません。 IsCurrentは私のデータベースのビットフィールドです。
誰でもこの理由を説明できますか?それは巨大なパフォーマンスのヒットを引き起こしています。
わからない... x => x.IsCurrent == true – rene