我正在使用带有“仅代码”的实体框架 CTP 5(使用 SQL Server 2008)。我有一个从 DbContext 返回的实体,然后我从中访问一个子集合,并从中选择一个项目。这是我的 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 是我数据库中的一个位字段。
谁能解释这是为什么?它造成了巨大的性能损失。