2
C# 콘솔 응용 프로그램에서 지연로드를 테스트하고 있습니다. 어떤 이유로 Lazy 로딩이 작동하지 않습니다.게으른 로딩 EntityFramework 5 (CodeFirst 포함)
LazyLoadingEnabled
및 ProxyCreationEnabled
컨텍스트의 속성을 확인했습니다. 구성. 그들은 사실입니다.
내 재산은 가상입니다.
다른 유사한 질문을 성공적으로 확인했습니다. 무슨 일이 일어날 지 모르겠습니다.
static void Main(string[] args) {
Models.DataContext dc = new Models.DataContext();
Console.WriteLine("Context Lazy {0}. Proxy Creation {1} ",
dc.Configuration.LazyLoadingEnabled,
dc.Configuration.ProxyCreationEnabled);
var grp = dc.Groups.FirstOrDefault();
Console.WriteLine("GroupId {1}, AttrSet is null = {0}",
grp.AttrSet == null , grp.Id);
var grp2 = dc.Groups.Include("AttrSet").FirstOrDefault();
Console.WriteLine("GroupId {1}, AttrSet is null = {0}",
grp2.AttrSet == null, grp2.Id);
}
class Group {
public System.Guid Id { get; set; }
public string Name { get; set; }
public virtual AttrSet AttrSet { get; set; }
}
class AttrSet {
public System.Guid Id { get; set; }
public string Name { get; set; }
}
이 실행의 출력은 다음과 같습니다 :
상황에 게으른 진정한
이것은 (네임 스페이스를 표시하지 단순화) 내 코드입니다. 프록시 생성 진정한
GROUPID의 186ebc8a-dec7-4302-9f84-5a575577baac, AttrSet는
진정한 = null 인GROUPID의 186ebc8a-dec7-4302-9f84-5a575577baac, AttrSet가 null = 거짓
I는 로드 된 레코드가 올 바르고 데이터베이스에 적절한 AttrSet
이 있는지 확인하십시오.
아이디어가 있으십니까?
업데이트 나는 어떤 일이 실제로 코드를보고 싶은 경우에 매우 간단한 테스트 프로젝트를 만들었습니다.
참조 : https://bitbucket.org/josea/eflazy (GIT : https://[email protected]/josea/eflazy.git).
나는 아무 소용이없는 재생산을 시도했다. 어떤 EF 버전을 실행하고 있습니까? 또한, Include() 호출없이 쿼리 할 때 NULL에 대해 테스트하는 대신 속성에 액세스하여 null ref 예외가 발생하는지 확인하십시오. – Moho
@Moho : 시도했지만 실패합니다. 소스 코드를 게시했습니다. 감사. – rufo