Compartilhar via


EntityReference<TEntity>.Load(MergeOption) Método

Definição

Carrega o objeto relacionado para esse EntityReference<TEntity> com a opção de mesclagem especificada.

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)

Parâmetros

mergeOption
MergeOption

Especifica como o objeto deve ser retornado se ele já existir no ObjectContext.

Exceções

A origem do EntityReference<TEntity> é null.

-ou-

Uma consulta retornou mais de uma extremidade relacionada.

-ou-

Uma consulta retornou zero extremidades relacionadas e uma extremidade relacionada era esperada.

Comentários

Esse método é usado para carregar o objeto relacionado.

Quando carregado, o objeto relacionado é acessado da propriedade Value.

Para carregar explicitamente objetos relacionados, você deve chamar o método Load no final relacionado retornado pela propriedade de navegação. Para uma relação um-para-muitos, chame o método Load em EntityCollection<TEntity>e, para uma relação um-para-um, chame o Load em EntityReference<TEntity>. Isso carrega os dados de objeto relacionados no contexto do objeto. Quando uma consulta retorna resultados, você pode enumerar por meio da coleção de objetos usando um loop de foreach (For Each...Next no Visual Basic) e chamar condicionalmente o método Load nas propriedades EntityReference<TEntity> e EntityCollection<TEntity> para cada entidade nos resultados.

O método Load carrega objetos relacionados da fonte de dados se IsLoaded está ou não true.

Nota

Quando você chama o método Load durante uma enumeração foreach (C#) ou For Each (Visual Basic), os Serviços de Objeto tentam abrir um novo leitor de dados. Essa operação falhará, a menos que você tenha habilitado vários conjuntos de resultados ativos especificando multipleactiveresultsets=true na cadeia de conexão. Você também pode carregar o resultado da consulta em uma coleção de List<T>. Isso fecha o leitor de dados e permite que você enumere na coleção para carregar objetos referenciados.

Esse método chama o método RelatedEnd.ValidateLoad interno antes de carregar o objeto relacionado, o que valida que uma chamada para Load tem as condições corretas. O método RelatedEnd.ValidateLoad verifica se:

Quando o objeto relacionado já está carregado no ObjectContext, o método Load impõe a MergeOption especificada pelo parâmetro mergeOption. Para obter mais informações, consulte Resolução de Identidade, Gerenciamento de Estado e Controle de Alterações.

Aplica-se a

Confira também