EntityReference<TEntity>.Load(MergeOption) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
지정된 병합 옵션을 사용하여 이에 EntityReference<TEntity> 대한 관련 개체를 로드합니다.
public:
override void Load(System::Data::Objects::MergeOption mergeOption);
public override void Load(System.Data.Objects.MergeOption mergeOption);
override this.Load : System.Data.Objects.MergeOption -> unit
Public Overrides Sub Load (mergeOption As MergeOption)
매개 변수
- mergeOption
- MergeOption
에 이미 있는 경우 개체를 반환하는 방법을 지정합니다 ObjectContext.
예외
의 소스 EntityReference<TEntity> 입니다 null.
-또는-
쿼리가 둘 이상의 관련 끝을 반환했습니다.
-또는-
쿼리가 0개의 관련 끝을 반환했고 하나의 관련 끝이 예상되었습니다.
설명
이 메서드는 관련 개체를 로드하는 데 사용됩니다.
로드되면 속성에서 관련 개체에 액세스합니다 Value .
관련 개체를 명시적으로 로드하려면 탐색 속성에서 반환된 Load 관련 끝의 메서드를 호출해야 합니다. 일대다 관계의 경우 메서드를 호출하고 일대일 관계에 대해 on을 호출합니다EntityReference<TEntity>Load.LoadEntityCollection<TEntity> 그러면 관련 개체 데이터가 개체 컨텍스트로 로드됩니다. 쿼리가 결과를 반환하는 경우 루프(For Each...NextVisual Basic)를 사용하여 foreach 개체 컬렉션을 열거하고 결과의 각 엔터티에 대한 EntityReference<TEntity> 메서드 및 EntityCollection<TEntity> 속성을 조건부로 호출 Load 할 수 있습니다.
이 메서드는 Load 데이터 원본 IsLoadedtrue에서 관련 개체를 로드합니다.
메모
(C#) 또는 For Each (Visual Basic) 열거 중에 메서드를 foreach 호출 Load 하는 경우 Object Services는 새 데이터 판독기를 열려고 시도합니다. 연결 문자열을 지정하여 여러 활성 결과 집합을 사용하도록 설정하지 않으면 이 작업이 실패합니다 multipleactiveresultsets=true . 쿼리 결과를 컬렉션에 로드할 List<T> 수도 있습니다. 이렇게 하면 데이터 판독기를 닫고 참조된 개체를 로드하기 위해 컬렉션을 열거할 수 있습니다.
이 메서드는 관련 개체를 로드하기 전에 내부 RelatedEnd.ValidateLoad 메서드를 호출하여 호출 Load 에 올바른 조건이 있는지 확인합니다. 메서드는 다음 RelatedEnd.ValidateLoad 을 확인합니다.
- 유효한 ObjectContext 항목이 있습니다.
- 엔터티가 상태가 아닙니다 Deleted .
- MergeOption Load 은 원본 엔터티NoTracking가 NoTracking .인 경우에만 사용해야 합니다. 원본 엔터티를 다른 MergeOptionLoadMergeOption 엔터티와 함께 검색한 경우 엔터티가 로드 OverwriteChanges 되었을 수 NoTracking 있고 Load 옵션이 있을 AppendOnly수 있습니다.
- 이 NoTrackingLoad 경우
mergeOption이미 로드된 엔터티에서 호출되지 않으며 비어 있지 않고 추적RelatedEnd되지 않은 엔터티 Load 에서 호출되지 않습니다.
관련 개체가 이미 로드된 ObjectContext경우 메서드는 Load 매개 변수로 지정된 개체를 MergeOptionmergeOption 적용합니다. 자세한 내용은 ID 확인, 상태 관리 및 변경 내용 추적을 참조하세요.