EntityReference<TEntity>.Load(MergeOption) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Carica l'oggetto correlato per l'oggetto EntityReference<TEntity> con l'opzione di unione specificata.
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)
Parametri
- mergeOption
- MergeOption
Specifica il modo in cui l'oggetto deve essere restituito se già esiste nell'oggetto ObjectContext.
Eccezioni
L'origine dell'oggetto EntityReference<TEntity> è null
.
-oppure-
Una query ha restituito più entità finali correlate.
-oppure-
Una query non ha restituito alcuna entità finale correlata mentre ne era prevista una.
Commenti
Questo metodo viene utilizzato per caricare l'oggetto correlato.
Una volta caricato, la proprietà Value accede all'oggetto correlato.
Per caricare in modo esplicito gli oggetti correlati, è necessario chiamare il Load
metodo sulla fine correlata restituita dalla proprietà di spostamento. Per una relazione uno-a-molti, chiamare il metodo Load su EntityCollection<TEntity>, mentre per una relazione uno-a-uno, chiamare Load su EntityReference<TEntity>. In questo modo, i dati degli oggetti correlati verranno caricati nel contesto dell'oggetto. Quando una query restituisce i risultati, è possibile enumerare tramite la raccolta di oggetti usando un foreach
ciclo (For Each...Next
in Visual Basic) e chiamare in modo condizionale il Load
metodo su EntityReference<TEntity> e EntityCollection<TEntity> le proprietà per ogni entità nei risultati.
Il Load metodo carica oggetti correlati dall'origine dati indipendentemente dal fatto che IsLoaded sia true
.
Nota
Quando si chiama il metodo Load durante un'enumerazione foreach
(C#) o For Each
(Visual Basic), Object Services tenta di aprire un nuovo lettore dati. Questa operazione non verrà eseguita correttamente a meno che non sia stata abilitata la funzionalità MARS (Multiple Active Result Set) specificando multipleactiveresultsets=true
nella stringa di connessione. È inoltre possibile caricare il risultato della query in una raccolta List<T>. In questo modo viene chiuso il lettore dati ed è possibile enumerare la raccolta per caricare gli oggetti a cui viene fatto riferimento.
Questo metodo chiama il metodo interno RelatedEnd.ValidateLoad
prima di caricare l'oggetto correlato, che convalida che una chiamata abbia Load le condizioni corrette. Il RelatedEnd.ValidateLoad
metodo verifica che:
- Esiste un valore valido ObjectContext .
- L'entità non è in uno Deleted stato.
- MergeOption per Load deve essere NoTracking se e solo se l'entità di origine era NoTracking. Se l'entità di origine è stata recuperata con qualsiasi altra MergeOption, può essere qualsiasi cosa,MergeOptionLoadma NoTracking (ad esempio, l'entità potrebbe essere stata caricata con OverwriteChanges e l'opzione Load può essere AppendOnly).
- Se
mergeOption
è NoTracking, Load non viene chiamato in un'entità già caricata e Load non viene chiamato in un oggetto non vuoto, non monitorato RelatedEnd.
Quando l'oggetto correlato è già caricato nell'oggetto ObjectContext, il Load metodo applica l'oggetto MergeOption specificato dal mergeOption
parametro . Per altre informazioni, vedere Risoluzione delle identità, Gestione stato e Rilevamento modifiche.
Si applica a
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per