Entity Framework는 부분 완료 인스턴스를 구체화하지 않습니다. 즉, 의 하위 위치 중 일부만으로 위치를 구체화 할 수는 없습니다. 이것은 "불완전한"객체 일 것이고 Entity Framework는 이것을 허용하지 않습니다.
그러나 해결 방법이 있습니다. 만 아니라 위치 자체에서 ChildLocations에서 정보가 필요한 경우, 단지를 선택 : 우리는 단지 ChildLocations을 선택하기 때문에 단지 그들 중 몇 가지 선택에
이 경우
from Locations in this.LocationDataContext.Locations
where Locations.LocationType.ID == 3
from ChildLocation in Locations
where ChildLocation.LocationType.ID == 2
select ChildLocation;
, 그것은 OK이다, 완전히 구체화 될 수 있기 때문입니다. 우리가 필요로하는 위치를 구체화 할 때만입니다 모두 아이들.
또 다른 해결 방법은 부분 위치 정보를 익명 형식으로 구체화하는 것입니다. 이렇게하면 위치와 의 ChildLocations에 대한 정보를 얻을 수 있으며 인스턴스는 완전한 형식으로 만 구체화 될 수 있습니다. 실제 위치를 실제로 구현하지 않으므로 전체 내용을 구체화 할 필요가 없습니다.
from Locations in this.LocationDataContext.Locations
where Locations.LocationType.ID == 3
select new
{
ID = Locations.ID,
LocationType= Locations.LocationType
ChildLocations = from ChildLocation in Locations
where ChildLocation.LocationType.ID == 2
select ChildLocation
}
좋은 설명, 감사합니다. –