EntityReference<TEntity>.Load(MergeOption) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Načte související objekt pro tento EntityReference<TEntity> se zadanou možností sloučení.
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)
Parametry
- mergeOption
- MergeOption
Určuje, jak má být objekt vrácen, pokud již existuje v ObjectContext.
Výjimky
Zdrojem EntityReference<TEntity> je null
.
-nebo-
Dotaz vrátil více než jeden související konec.
-nebo-
Dotaz vrátil nula souvisejících konců a byl očekáváný jeden související konec.
Poznámky
Tato metoda se používá k načtení souvisejícího objektu.
Při načtení se k souvisejícímu objektu přistupuje z vlastnosti Value.
Chcete-li explicitně načíst související objekty, je nutné volat Load
metodu na souvisejícím konci vrácenou navigační vlastností. U relace 1:N volejte metodu Load pro EntityCollection<TEntity>a pro relaci 1:1 zavolejte Load na EntityReference<TEntity>. Tím se načte související data objektu do kontextu objektu. Když dotaz vrátí výsledky, můžete vytvořit výčet kolekcí objektů pomocí smyčky foreach
(For Each...Next
v jazyce Visual Basic) a podmíněně volat metodu Load
pro EntityReference<TEntity> a EntityCollection<TEntity> vlastnosti pro každou entitu ve výsledcích.
Metoda Load načte související objekty ze zdroje dat bez ohledu na to, zda IsLoaded je true
.
Poznámka
Když voláte metodu Load během výčtu foreach
(C#) nebo For Each
(Visual Basic), služba Object Services se pokusí otevřít novou čtečku dat. Tato operace selže, pokud jste nepovolili více aktivních sad výsledků zadáním multipleactiveresultsets=true
v připojovacím řetězci. Výsledek dotazu můžete také načíst do kolekce List<T>. Tím se čtečka dat zavře a umožní vám vytvořit výčet nad kolekcí, aby se načetly odkazované objekty.
Tato metoda volá interní metodu RelatedEnd.ValidateLoad
před načtením souvisejícího objektu, která ověří, že volání Load má správné podmínky. Metoda RelatedEnd.ValidateLoad
zkontroluje, že:
- Existuje platný ObjectContext.
- Entita není ve stavu Deleted.
- MergeOption pro Load musí být NoTracking, pokud byla zdrojová entita NoTracking. Pokud byla zdrojová entita načtena s jinými MergeOption, může být LoadMergeOption cokoli, ale NoTracking (entita mohla být načtena s OverwriteChanges a možnost Load může být AppendOnly).
- Pokud je
mergeOption
NoTracking, Load není volána u již načtené entity a Load není volána na neprázdné, nesledované RelatedEnd.
Pokud je související objekt již načten v ObjectContext, Load metoda vynucuje MergeOption určené parametrem mergeOption
. Další informace najdete v tématu řešení identit, správy stavu a sledování změn.