0

Entity Framework 4.1 - 코드 우선을 사용하고 있습니다. > 지구 - ->시 -> -> 지역 -> 주소 만 나는 모든 가능한 지구, 도시 및 지역의를 제공 내 나라 내 주소에 적용전체 주소 계층 구조 가져 오기 (지연로드 문제)

국가 : 나는 다음과 같이 사용자의 주소를 저장할 사용자가 선택할 수 있도록 국가. 그런 다음 주소 표에 저장된 주소 세부 정보를 채 웁니다. 이 명확하게하기 위해

, 다음에서 살펴 :

public class Address 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    [MaxLength(500)] 
    public string Details { get; set; } 
    public bool IsDefaultAddress { get; set; } 
    public string CountryName { get; set; } 
    public Area Area { get; set; } 
    public virtual User User { get; set; } 
} 

public class Area 
{ 
    public int Id { get; set; } 
    public string GoogleName { get; set; } 
    public string FamiliarName { get; set; } 
    public virtual ICollection<Address> Addresses { get; set; } 
    public virtual City City { get; set; } 

    public string GetName 
    { 
     get { return FamiliarName ?? GoogleName; } 
    } 
} 

public class City 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public virtual District District { get; set; } 
    public virtual ICollection<Area> Areas { get; set; } 
} 

public class District 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public virtual ICollection<City> Cities { get; set; } 
    public virtual Country Country { get; set; } 
} 

public class Country 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public virtual ICollection<District> Districts { get; set; } 
} 

나는 내가 virtual 키워드를 사용 여부, 아무것도 변경되지 않습니다 것으로 나타났습니다. Area은 어떤 이유로 든 항상 null입니다.

주소를 검색하고 다른 모든 정보 (지역, 도시, 국가 및 국가) 개체가 null이 아니게하려면 어떻게해야합니까?

+0

엔티티를 올바르게 매핑 했습니까? 지도 작성 코드 표시 – Eranga

답변

2

당신은 당신이 그 (것)들을 단순히 열망로드를 사용할 필요가 있음을 알고있는 경우 : 당신이 다음 다른 뭔가를 Areavirtual을 표시 할 때

var address = context.Address.Include(a => a.Area.City.District.Country).Where(...); 

하면 게으른 로딩이 작동하지 않습니다는 잘못된 것입니다.