「コードのみ」(SQL Server 2008) で Entity Framework CTP 5 を使用しています。DbContext から返されたエンティティがあり、それから子コレクションにアクセスし、そこから 1 つの項目を選択します。これが私のLINQステートメントです:
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 は私のデータベースのビット フィールドです。
これがなぜなのか説明できる人はいますか?パフォーマンスに大きな影響を与えています。