2009-03-27 4 views
1

내가하는 작업은 틀리지 만 잘 알고 있습니다.ADO.net 엔터티 프레임 워크를 사용하여 개체 참조를 올바르게로드하는 방법

public Profile GetProfile(int id) 
    { 
     Profile profile = (
      from u in en.User where u.UserID == id 
       select u.Profile.FirstOrDefault() 
      ).First(); 

     if (profile.UserReference.Value == null) 
      profile.UserReference.Load(); 

     return profile; 
    } 

Profile.UserID는 User.UserID와 연결된 FK입니다. 따라서 Profile.UserID는 Entity Framework에 의해 Entity Model에 포함되지 않습니다. 그 이유는 내 linq 쿼리가 먼저 User 개체를 조회 한 다음 관련 Profile 개체를 선택하기 때문입니다. User.UserID를 통해

  1. 조회 프로필 개체 :

    누구에게 더 나은 솔루션을 제공 할 수 있습니다.
  2. 반환 된 Profile 개체에 User 개체 참조를로드합니다.

미리 감사드립니다.

답변

4

사용자 참조가 이미로드와,

public Profile GetProfile(int id) 
{ 
    return (from p in db.Profiles.Include("User") 
      where p.User.UserId == id 
      select p).FirstOrDefault(); 
} 

이 방법은 프로필 개체를 반환 Include 방법을 사용해보십시오.

+0

거꾸로 내가 돌려주고 싶었지만 Include 메서드와 비슷한 구문을 사용하여 문제를 해결할 수있었습니다. 감사 bendewey! – Kappers

+0

시나리오에 따라이 쿼리가 더 효과적입니까? – bendewey

+0

네, 그게 내가 바꾼 것입니다. – Kappers

관련 문제