Я использую Entity Framework 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 - это битовое поле в моей базе данных.
Кто-нибудь может объяснить, почему это так?Это вызывает огромный удар по производительности.