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.