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 метод принудительно применяет заданный MergeOption параметром mergeOption
. Дополнительные сведения см. в разделах Разрешение удостоверений, Управление состоянием и Отслеживание изменений.
Применяется к
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по