2010-07-27 2 views
1

a, b 및 c 세 개의 열이있는 엔터티가 있습니다. 나는 익명 클래스의 객체에 ObjectSet 투사하는 경우 : 나는의 속성으로 EntityObject을 포함하는 경우모든 열을 포함하지 않고 LINQ To Entities 프로젝션에 EntityObject 포함

SELECT 
[Extent1].[a] AS [a], 
[Extent1].[b] AS [b] 
FROM [dbo].[foo] AS [Extent1] 

:

var ret = e.foos.Select(x => new { 
    a = x.a, 
    b = x.b 
}).ToList(); 

을 그리고 실제 SQL은 각 개체를 채우는 데 필요한 열을 포함 익명 클래스는 다음 개체의 모든 열은 "A가"와 "B"가 명시 적으로 불러에도 불구하고, SQL에 포함되어

var ret = e.foos.Select(x => new { 
    a = x.a, 
    b = x.b, 
    o = x 
}).ToList(); 

SELECT 
[Extent1].[a] AS [a], 
[Extent1].[b] AS [b], 
[Extent1].[c] AS [c] 
FROM [dbo].[foo] AS [Extent1] 

내가 열을 제외 할 수있는 방법이 있나요 "c"가 데이터베이스에서 가져 오지 못하고 내 익명 개체의 EntityObject에 대한 참조가 여전히 있습니까?

답변

1

아마도 ret.o.c이 될 때 일어날 일에 대해 생각해 보면 Entity가 원하는 방식으로 작동하지 않는다는 것을 알고있을 것입니다.

1

속성을 채우지 않은 엔티티 참조를 가져올 수 있는지 묻는 중입니까? 그게 지원되는 것 같지 않아요. 그러나 엔티티 클래스의 기본 키를 검색하는 것만 큼 많은 이점을 얻을 수 있습니다. 엔티티 클래스를 식별하는 데 필요한 모든 것이어야합니다.

관련 문제