EntityReference<TEntity>.Load(MergeOption) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Carrega o objeto relacionado para este 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 deverá 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 Value propriedade .
Para carregar explicitamente objetos relacionados, você deve chamar o Load
método na extremidade relacionada retornada pela propriedade de navegação. Para uma relação um-para-muitos, chame o Load método em EntityCollection<TEntity>e, para uma relação um-para-um, chame o Load em EntityReference<TEntity>. Isso carrega os dados do objeto relacionado no contexto do objeto. Quando uma consulta retorna resultados, você pode enumerar por meio da coleção de objetos usando um foreach
loop (For Each...Next
no Visual Basic) e chamar condicionalmente o Load
método em EntityReference<TEntity> propriedades e EntityCollection<TEntity> para cada entidade nos resultados.
O Load método carrega objetos relacionados da fonte de dados, independentemente de ser true
ou não IsLoaded .
Observação
Quando você chama o Load método durante uma foreach
enumeração (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
no cadeia de conexão. Você também pode carregar o resultado da consulta em uma List<T> coleção. 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 interno RelatedEnd.ValidateLoad
antes de carregar o objeto relacionado, que valida que uma chamada para Load tem as condições corretas. O RelatedEnd.ValidateLoad
método verifica se:
- Existe um válido ObjectContext .
- A entidade não está em um Deleted estado.
- MergeOption for Load deverá ser NoTracking se e somente se a entidade de origem for NoTracking. Se a entidade de origem foi recuperada com qualquer outro MergeOption, o LoadMergeOption pode ser qualquer coisa NoTracking menos (por exemplo, a entidade poderia ter sido carregada com OverwriteChanges e a opção Load pode ser AppendOnly).
- Se
mergeOption
for NoTracking, Load não será chamado em uma entidade já carregada e Load não será chamado em um não vazio, sem rastreamento RelatedEnd.
Quando o objeto relacionado já está carregado no ObjectContext, o Load método impõe o MergeOption especificado pelo mergeOption
parâmetro . Para obter mais informações, consulte Resolução de Identidade, Gerenciamento de Estado e Controle de Alterações.
Aplica-se a
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de