EntityReference<TEntity>.Load(MergeOption) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Carrega o objeto relacionado com EntityReference<TEntity> a opção de fusão 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 devolvido se já existir no ObjectContext.
Exceções
A fonte do EntityReference<TEntity> é null.
-ou-
Uma consulta devolveu mais do que uma extremidade relacionada.
-ou-
Uma consulta devolveu zero extremidades relacionadas, e esperava-se uma extremidade relacionada.
Observações
Este método é usado para carregar o objeto relacionado.
Quando carregado, o objeto relacionado é acedido a partir da Value propriedade.
Para carregar explicitamente objetos relacionados, deve chamar o Load método na extremidade relacionada devolvido 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>. Isto carrega os dados relacionados do objeto no contexto do objeto. Quando uma consulta retorna resultados, pode enumerar através da coleção de objetos usando um ciclo foreach (For Each...Next em Visual Basic) e chamar condicionalmente o método Load em EntityReference<TEntity> e EntityCollection<TEntity> propriedades para cada entidade nos resultados.
O Load método carrega objetos relacionados a partir da fonte de dados, seja ou trueIsLoaded não .
Note
Quando chama o método Load durante uma enumeração foreach (C#) ou For Each (Visual Basic), o Object Services tenta abrir um novo leitor de dados. Esta operação falhará a menos que tenha ativado vários conjuntos de resultados ativos especificando multipleactiveresultsets=true no cadeia de ligação. Também pode carregar o resultado da consulta numa List<T> coleção. Isto fecha o leitor de dados e permite-lhe enumerar sobre a coleção para carregar objetos referenciados.
Este método chama o método interno RelatedEnd.ValidateLoad antes de carregar o objeto relacionado, o que valida que uma chamada a Load tem as condições corretas. O RelatedEnd.ValidateLoad método verifica que:
- Existe um válido ObjectContext .
- A entidade não está num Deleted estado.
- MergeOption para Load deve ser NoTracking se e só se a entidade fonte fosse NoTracking. Se a entidade de origem foi recuperada com qualquer outra MergeOption, pode LoadMergeOption ser qualquer coisa menos NoTracking (por exemplo, a entidade poderia ter sido carregada com OverwriteChanges e a Load opção pode ser AppendOnly).
- Se for , não é chamado numa entidade já carregada e Load não é chamado numa entidade não vazia, não rastreada RelatedEnd. LoadNoTracking
mergeOption
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.