대부분의 Entity Framework POCO에는 가상 기능이 있습니다 (전부는 아니지만). 엔티티가 지연로드 될 수 있도록 이러한 함수가 가상이어야합니다.생성자에서 가상 함수를 호출하는 것을 피하려면 어떻게해야합니까?
생성자에서 Accommodations
을 초기화하면 생성자에서 가상 함수가 호출됩니다. 이는 나쁜 습관입니다.
그러나 생성자가 아닌 경우 Accommodations
을 어떻게 초기화 할 수 있습니까?
public class Venue
{
public Venue()
{
Accommodations = new HashSet<Accommodation>();
}
public virtual ICollection<Accommodation> Accommodations { get; set; }
}
지연로드의 점까지, 모두를 초기화하는 _not_입니다 처음 사용. –
@JohnWillemse 만약 내가 그것을 null로 내보기에서 null 예외가 나타납니다. –
아니요, null을 테스트하고 필요할 때 초기화합니다. 사용법에 대한 설명은 아래 Willem Duncan의 대답을 참조하십시오. 어쩌면 같은 대답에 대한 Daniel의 의견에 따라 다른 패턴을 혼동하는 것일 수도 있습니다. –