我正在使用Entity Framework CTP 5和「僅限代碼」(使用SQL Server 2008)。我有一個從DbContext返回的實體,然後我從中訪問一個子集合,並從中選擇一個項目。這裏是我的LINQ聲明:爲什麼Entity Framework不會在使用SingleOrDefault時生成的SQL中添加「where」?
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 2011-03-01 12:50:41