2012-10-07 6 views
7

내 엔터티 프레임 워크 4.3 데이터베이스의 첫 번째 프로젝트를 새 엔터티 프레임 워크 5로 업그레이드했습니다. 분명히 ObjectContext 대신 DbContext를 사용하고 있습니다. Entity Framework 5의 LoadProperty

기존 .edmx 파일을 새로운 것으로 바꿨습니다. LoadProperty가 DbContext에서 사용 가능한 방법이 아니다 것 같다

using (var context = new MyEntities()) 
{ 
    Models.User user = context.Users.First(x => x.GUID == guid); 
    context.LoadProperty(user, o => o.Settings); 
    return user; 
} 

: 이전에 내 4.3 .edmx 파일을 사용하고 내 오랜 비즈니스 코드는 이제 코드는 LoadProperty 방법을 사용하여 문제가있다.

어쨌든 강력한 입력 로딩을 얻으려면 어떻게해야합니까?

은 내가

context.Users.Include("Settings") 

를 사용할 수 있습니다 생각하지만 강한 입력 된 오타하는 경향이 없습니다.

+1

당신에게 여기

context.Users.Include(u => u.Settings); 

이 포함 확장 방법에 대한 몇 가지 정보입니다 ...

using System.Data.Entity; 

:이 포함하기 때문에 는 DbExtension 클래스에서 제공, using 문을 잊지 마세요 ObjectContext를 사용하는 경우 EF4.3을 사용하지 않았습니다. EF4.3은 기본적으로 DbContext에 관한 것이 었습니다 ... 지연로드가 활성화 된 경우 명시 적으로로드하지 않고 .Settings 속성을 사용할 수 있습니다. 데이터베이스로의 이동을 유발할 수 있으므로 자주 사용하는 경우 아래를 가리 키도록 .Include()를 사용하는 것이 더 쌀 수도 있습니다. – Pawel

+0

@Pawel : 오 죄송합니다. 업데이트 이후에 발생한 또 다른 문제에 대한 질문을 읽고 내 상황을 더 잘 설명하기 위해 "숙제"로 인용했습니다. 나는 그 문장을 통해 파업했다. – citronas

답변

15

람다와 함께 Include 메서드를 사용할 수도 있습니다. msdn info

+0

굉장! 정확히 내가 무엇을 찾고 있었는지! 나는 당신의 대답이 같은 문제를 가진 다른 사람들에게 도움이되기를 바랍니다. – citronas

+0

Epic Extension 나는 꼭 말해야한다. 강하게 입력 된 이래로 훌륭합니다. –