EntityReference<TEntity>.Load(MergeOption) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Загружает связанный объект для этого 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.
-или-
Запрос вернул несколько связанных конца.
-или-
Запрос вернул нулевые связанные концы, и ожидался один связанный конец.
Комментарии
Этот метод используется для загрузки связанного объекта.
При загрузке связанный объект обращается из Value свойства.
Чтобы явно загрузить связанные объекты, необходимо вызвать Load метод в связанном конце, возвращаемом свойством навигации. Для связи "один ко многим" вызовите Load метод в EntityCollection<TEntity>, а для связи "один ко многим" вызовите его LoadEntityReference<TEntity>. При этом данные связанных объектов загружаются в контекст объекта. Когда запрос возвращает результаты, можно перечислить коллекцию объектов с помощью foreach цикла (For Each...Next в Visual Basic) и условно вызвать Load метод EntityReference<TEntity> и EntityCollection<TEntity> свойства для каждой сущности в результатах.
Метод Load загружает связанные объекты из источника данных независимо от того, является ли trueон.IsLoaded
Заметка
При вызове Load метода во время foreach перечисления (C#) или For Each (Visual Basic) службы объектов пытаются открыть новое средство чтения данных. Эта операция завершится ошибкой, если вы не включили несколько активных наборов результатов, указав multipleactiveresultsets=true в строке подключения. Вы также можете загрузить результат запроса в коллекцию List<T> . Это закрывает средство чтения данных и позволяет перечислить коллекцию для загрузки ссылочных объектов.
Этот метод вызывает внутренний RelatedEnd.ValidateLoad метод перед загрузкой связанного объекта, который проверяет, что вызов Load имеет правильные условия. Метод RelatedEnd.ValidateLoad проверяет, что:
- Допустимая ObjectContext существует.
- Сущность не в Deleted состоянии.
- MergeOption Load значение должно быть, если и только NoTracking в том случае, если исходная сущность былаNoTracking. Если исходная сущность была получена с любым другим MergeOption, LoadMergeOption может быть что-либо, но NoTracking (например, сущность могла быть загружена и OverwriteChangesLoad параметр может быть AppendOnly).
- Если
mergeOptionэто NoTrackingтак, Load не вызывается для уже загруженной сущности и Load не вызывается для непустой, не отслеживаемой RelatedEnd.
Когда связанный объект уже загружен в ObjectContextметод, Load метод применяет MergeOption указанный параметром mergeOption . Дополнительные сведения см. статью «Разрешение удостоверений», «Управление состоянием» и «Отслеживание изменений».