먼저 EF 4.1 코드를 사용하고 있습니다.EF 4.1 - 가상 컬렉션 속성에 항목 추가
public class Doctor
{
public virtual ICollection<Hospital> Hospitals { get; set; }
}
참고 : 다음 클래스 조각을 감안할 때 나는 데이터베이스 컨텍스트이 있습니다
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
this.Configuration.LazyLoadingEnabled = false;
}
내가 게으른 로딩이 여기에 포함되지 않았는지 확인하고 싶었다.
내가 가지고있는 문제는 병원 속성에 virtual
키워드가 없으면 병원과 관련이있는 의사를 검색 할 때 컬렉션이 비어 있다는 것입니다. virtual
키워드를 포함하면 병원 컬렉션에 예상 한 1 개의 항목이 포함됩니다.
새로운 병원을 만들고 병원과 즉시 연결할 때 병원 위치가 아직 초기화되지 않았으므로 Null reference
예외가 발생한다는 문제가 있습니다.
누군가 내가 여기서 잘못하고있는 것을 지적 할 수 있습니까? 새 의사를 만들 때 어떻게 병원에 항목을 추가 할 수 있습니까?
건배. Jas. 당신이 virtual
키워드를 사용하지 않는 경우
public class Doctor
{
private ICollection<Hospital> _hospitals;
public virtual ICollection<Hospital> Hospitals
{
get { return _hospitals ?? (_hospitals = new HashSet<Hospital>()); }
set { _hospitals = value }
}
}
하는 EF 당신을 위해 콜렉션을 초기화하지 않습니다
좋은 결과. 건배. –
내 소식을 볼 때마다 내 문제를 해결합니다. 당신이 EF에 관한 책을 가지고 있다면 나는 그것을 살 것입니다! – GraemeMiller
해결책 주셔서 감사합니다. 나를 위해 일했다. – OSH