0

문제는 다음입니다 - 내가 2 개체가 일대 다 관계 :EF 4.3 및 CodeFirst : 하나는 일대 엔티티 프록시없이 널 (null)로 탐색 속성로드

public class Schema 
{ 
    [DatabaseGenerated(DatabaseGeneratedOption.None)] 
    public Guid SchemaId { get; set; } 

    public string Name { get; set; } 

    public string Content { get; set; } 

    public string ElementName { get; set; } 

    public List<Element> Elements { get; set; } 
} 

public class Element 
{ 
    [DatabaseGenerated(DatabaseGeneratedOption.None)] 
    public Guid ElementId { get; set; } 

    public Guid SchemaId { get; set; } 

    public string Content { get; set; } 

    public Schema InSchema { get; set; } 
} 

및 프로젝트 EntityFramework V4에 참조 .3 패키지. 데이터베이스에 관련된 요소가있는 일부 스키마를 저장 한 후 스키마 목록 (예 : var schemasList = context.Schemas.ToList())을로드합니다. 이 후에는 Elements의 모든 Schema 인스턴스에서 속성 값이 null입니다. 이제 엔티티에 동적 프록시를 추가하면이 문제가 해결되지만 여러 가지 상황에 영향을 미칩니다 (예 : 저장으로 인해 여러 컨텍스트로 엔티티 추적 오류가 발생할 수 있음). 이 문제에 도움을 주셔서 감사합니다.

답변

2

검색어에 포함 시켰습니까? 당신이

using System.Data.Entity 

사용해야합니다

from s in Schema.Include(sc=>sc.Elements) 
select s; 

참고

+0

이 CodeFirst와 필요의이 포함되어 있습니까? – DrAlligieri

+1

@DrAlligieri : 나는 입력 할 필요가없는 하나의 서버와 그것을 타이핑해야하는 서버를 가지고 있습니다. 비즈니스 계층을 살펴볼 필요가 있습니다. 어쨌든 이것은 게으른 로딩 (필요한 것만로드)을 수행 할 필요가 없으므로 필수적입니다. 이제는 요소 테이블에서 ** 가입 **해야하는 포함으로 말합니다 (이는 성능으로 간주 될 수 있음) 당신이 그것을 필요로하지 않으면 충격.). –

+0

OK, 답은 tnx입니다. 나는 게으른 로딩 개념에 익숙하다. 또 다른 질문 - sc.Elements (ak List ) 항목 (ak 요소)의 단순 속성 만로드하거나 너무 복잡한 탐색 (목록에있는 다른 복잡한 탐색 소품이있는 경우)을 포함합니다. – DrAlligieri