EntityReference<TEntity>.Load(MergeOption) Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Betölti ehhez a kapcsolódó objektumot EntityReference<TEntity> a megadott egyesítési beállítással.
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)
Paraméterek
- mergeOption
- MergeOption
Megadja, hogyan kell visszaadni az objektumot, ha már létezik a ObjectContextfájlban.
Kivételek
A forrás a EntityReference<TEntity> .null
-vagy-
Egy lekérdezés több kapcsolódó végpontot adott vissza.
-vagy-
Egy lekérdezés nulla kapcsolódó végpontot adott vissza, és egy kapcsolódó végpontot várt.
Megjegyzések
Ez a metódus a kapcsolódó objektum betöltésére szolgál.
Betöltéskor a kapcsolódó objektum a tulajdonságból Value érhető el.
A kapcsolódó objektumok explicit betöltéséhez meg kell hívnia a Load metódust a navigációs tulajdonság által visszaadott kapcsolódó végponton. Egy-a-többhöz kapcsolat esetén hívja meg a Load metódust EntityCollection<TEntity>bekapcsolva, az egy-az-egyhez kapcsolat esetén pedig a Load bekapcsolva EntityReference<TEntity>. Ezzel betölti a kapcsolódó objektumadatokat az objektumkörnyezetbe. Amikor egy lekérdezés eredményeket ad vissza, egy foreach hurok használatával (For Each...Next Visual Basic) számba vehet objektumgyűjteményen keresztül, és feltételesen meghívhatja a Load metódust EntityReference<TEntity> és EntityCollection<TEntity> tulajdonságokat az eredmények minden entitásához.
A Load metódus betölti a kapcsolódó objektumokat az adatforrásból, függetlenül attól, hogy az-e IsLoadedtrue.
Note
Amikor meghívja a Load metódust egy foreach (C#) vagy For Each (Visual Basic) számbavétel során, az Object Services megpróbál megnyitni egy új adatolvasót. Ez a művelet sikertelen lesz, hacsak nem engedélyezett több aktív eredményhalmazt a kapcsolati karakterlánc multipleactiveresultsets=true megadásával. A lekérdezés eredményét egy gyűjteménybe List<T> is betöltheti. Ezzel bezárja az adatolvasót, és lehetővé teszi a gyűjtemény számbavételét a hivatkozott objektumok betöltéséhez.
Ez a metódus meghívja a belső RelatedEnd.ValidateLoad metódust a kapcsolódó objektum betöltése előtt, amely ellenőrzi, hogy a hívás Load megfelelő feltételekkel rendelkezik-e. A RelatedEnd.ValidateLoad módszer ellenőrzi, hogy:
- ObjectContext Érvényes érvényesség létezik.
- Az entitás nincs állapotban Deleted .
- MergeOption for Load kell lennie NoTracking , ha és csak akkor, ha a forrás entitás volt NoTracking. Ha a forrásentitást bármely másvalakivel MergeOptionlekérték, azLoadMergeOptionlehet bármi, de NoTracking (például az entitás betölthetőOverwriteChanges, és a Load beállítás lehetAppendOnly).
- Ha
mergeOptionigen NoTracking, Load akkor a rendszer nem hívja meg a már betöltött entitást, és Load nincs meghívva egy nem üres, nem nyomon követett RelatedEndentitásra.
Ha a kapcsolódó objektum már be van töltve a ObjectContextfájlba, a Load metódus kikényszeríti a MergeOptionmergeOption paraméter által megadott értéket. További információ: Identitásfeloldás, állapotkezelés és változáskövetés.