"코드 전용"(SQL Server 2008 사용)으로 된 Entity Framework CTP 5를 사용하고 있습니다. 엔티티가 DbContext에서 리턴 된 다음 하위 컬렉션에 액세스 한 다음 하나의 항목을 선택합니다.SingleOrDefault가 사용될 때 Entity Framework에서 생성되는 SQL에 "Where"를 추가하지 않는 이유는 무엇입니까?
이Question currentQuestion = currentTopic.Questions.SingleOrDefault(x => x.IsCurrent);
이 다음과 같은 SQL을 생성합니다 : 내 "대해 IsCurrent"제한이 전혀
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
를 참조되지 여기 내 LINQ 문입니다. IsCurrent는 데이터베이스의 비트 필드입니다.
이유가 누구인지 설명 할 수 있습니까? 엄청난 성능 저하를 초래합니다.
확실하지 않습니다 ... x => x.IsCurrent == true – rene