(7) 나는 다음과 같은 요소를 가지고 : Entity Framework 쿼리가 자식 속성을 다른 변수로로드하고 있습니다. 왜? 엔티티 프레임 워크 코어를 사용
public class Person {
public Int32 Id { get; set; }
public virtual Address Address { get; set; }
}
public class Address {
public Int32 PersonId { get; set; }
public String City { get; set; }
}
그런 다음 나는 두 번째 줄에 중단 점으로 다음과 같은 쿼리를 실행했습니다.
List<Context.Person> a = context.Persons.ToList();
List<Context.Person> b = context.Persons.Include(x => x.Address).ToList();
"a"변수를 검사 할 때 각 목록 항목의 주소는 null입니다. 이는 첫 번째 쿼리의 주소가 포함되지 않았기 때문에 의미가 있습니다.
두 번째 쿼리를 실행할 수 있도록 허용하고 "b"목록 항목의 주소가 널 (null)과 다른 주소를 가지고 있다는 것을 알았습니다.
"b"를 실행하면 "a"항목의 주소가로드됩니다.
왜? 이 문제를 피할 수 있습니까?
몇 가지 테스트를 만들고 있는데 이것은 피하고 싶습니다.
문제는 당신이 adresses을 포함로 상황이 더 크게된다, 따라서 a.Address 속성도 가득합니다. 다른 컨텍스트에서 주소를 추가하십시오. 아마도 지연로드를 비활성화하면 도움이 될 수도 있습니다. – DevilSuichiro
지연로드가 Entity Framework Core에 존재하지 않습니다. 2 컨텍스트를 사용하지 않고이 문제를 해결할 수있는 다른 방법이 있습니까? 내 목록에는 8 개의 레코드와 각각 하나의 주소 만 있습니다. 나는이 일을하는 것이 이상하다는 것을 안다. –