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>, а для взаимно-однозначной связи — метод Load для объекта EntityReference<TEntity>. В результате данные связанного объекта будут загружены в контекст объекта. Когда запрос возвращает результаты, можно выполнить перечисление через коллекцию объектов с помощью foreach
цикла (For Each...Next
в Visual Basic) и условно вызвать Load
метод в EntityReference<TEntity> свойствах и EntityCollection<TEntity> для каждой сущности в результатах.
Метод Load загружает связанные объекты из источника данных независимо от того, является ли IsLoaded метод true
.
Примечание
Если метод Load вызывается во время перечисления foreach
(C#) или For Each
(Visual Basic), службы объектов пытаются открыть новый модуль чтения данных. Эта операция завершится ошибкой, если не был включен режим MARS путем задания multipleactiveresultsets=true
в строке соединения. Кроме того, можно загрузить результат запроса в коллекцию List<T>. В результате модуль чтения данных будет закрыт, и появится возможность выполнять перечисление по коллекции для загрузки объектов, на которые существуют ссылки.
Этот метод вызывает внутренний RelatedEnd.ValidateLoad
метод перед загрузкой связанного объекта, который проверяет, имеет ли вызов Load правильные условия. Метод RelatedEnd.ValidateLoad
проверяет, что:
- Допустимый ObjectContext объект существует.
- Сущность не Deleted в состоянии .
- MergeOption параметр for Load должен иметь значение NoTracking , если и только в том случае, если исходная сущность была NoTracking. Если исходная сущность была получена с помощью любого другого MergeOptionMergeOptionLoadобъекта , может быть любым, кроме NoTracking (например, сущность могла быть загружена с OverwriteChanges , а Load параметр может иметь значение ).AppendOnly
- Если
mergeOption
имеет значение NoTracking, Load метод не вызывается для уже загруженной сущности и Load не вызывается для непустой, не отслеживаемой сущности RelatedEnd.
Если связанный объект уже загружен в ObjectContext, Load метод принудительно применяет заданный MergeOptionmergeOption
параметром . Дополнительные сведения см. в разделах Разрешение удостоверений, Управление состоянием и Отслеживание изменений.
Применяется к
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по