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 questa 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 esiste già nella ObjectContext.
Eccezioni
L'origine del EntityReference<TEntity> è null.
-o-
Una query ha restituito più di una fine correlata.
-o-
Una query ha restituito zero estremità correlate e una fine correlata era prevista.
Commenti
Questo metodo viene utilizzato per caricare l'oggetto correlato.
Quando viene caricato, l'oggetto correlato è accessibile dalla proprietà Value.
Per caricare in modo esplicito gli oggetti correlati, è necessario chiamare il metodo Load sulla fine correlata restituita dalla proprietà di navigazione. Per una relazione uno-a-molti, chiamare il metodo Load su EntityCollection<TEntity>e per una relazione uno-a-uno, chiamare il Load su EntityReference<TEntity>. In questo modo i dati dell'oggetto correlati vengono caricati nel contesto dell'oggetto. Quando una query restituisce risultati, è possibile enumerare l'insieme di oggetti usando un ciclo foreach (For Each...Next in Visual Basic) e chiamare in modo condizionale il metodo Load su EntityReference<TEntity> e EntityCollection<TEntity> proprietà per ogni entità nei risultati.
Il metodo Load carica gli 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 avrà esito negativo a meno che non siano stati abilitati più set di risultati attivi specificando multipleactiveresultsets=true nella stringa di connessione. È anche possibile caricare il risultato della query in una raccolta di List<T>. Chiude il lettore dati e consente di enumerare la raccolta per caricare gli oggetti a cui si fa riferimento.
Questo metodo chiama il metodo RelatedEnd.ValidateLoad interno prima di caricare l'oggetto correlato, che convalida che una chiamata a Load abbia le condizioni corrette. Il metodo RelatedEnd.ValidateLoad verifica che:
- Esiste un ObjectContext valido.
- L'entità non è in uno stato Deleted.
- MergeOption per Load deve essere NoTracking se e solo se l'entità di origine è NoTracking. Se l'entità di origine è stata recuperata con qualsiasi altra MergeOption, il LoadMergeOption può essere qualsiasi cosa, ma 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 su un'entità già caricata e Load non viene chiamato in un RelatedEndnon vuoto e non monitorato.
Quando l'oggetto correlato è già caricato nella ObjectContext, il metodo Load applica il MergeOption specificato dal parametro mergeOption. Per altre informazioni, vedere Identity Resolution, State Management e Change Tracking.