DataLoadOptions Osztály

Definíció

Lehetővé teszi a kapcsolódó adatok azonnali betöltését és szűrését.

public ref class DataLoadOptions sealed
public sealed class DataLoadOptions
type DataLoadOptions = class
Public NotInheritable Class DataLoadOptions
Öröklődés
DataLoadOptions

Példák

A Northwind mintaadatbázisból való lekéréskor Customers megadhatja DataLoadOptions , hogy az Orders is lekérhető legyen. Azt is megadhatja, hogy melyik részhalmazt Orders szeretné lekérni.

Megjegyzések

Az DataLoadOptions osztály biztosítja a kapcsolódó adatok azonnali betöltését és szűrését.

Amikor lekérdez egy objektumot, valójában csak a kért objektumot kéri le. A kapcsolódó objektumok nem lesznek automatikusan beolvasva egyszerre. További információt a Kapcsolatok közötti lekérdezés című témakörben talál.

Az DataLoadOptions osztály két módszert biztosít a megadott kapcsolódó adatok azonnali betöltéséhez. A LoadWith módszer lehetővé teszi a fő célhoz kapcsolódó adatok azonnali betöltését. A AssociateWith metódus lehetővé teszi a kapcsolódó objektumok szűrését.

Rules

Vegye figyelembe a következő használati szabályokat DataLoadOptions :

  • Kivételt eredményez, ha DataLoadOptions az első lekérdezés végrehajtása után rendel hozzá egy DataContext adott lekérdezést.
  • Ha módosít egy DataLoadOptions olyan elemet, amely hozzá lett rendelve egy DataContext kivételhez, kivételt hoz létre.

Ciklusok kezelése

LoadWith és AssociateWith az irányelvek nem hozhatnak létre ciklusokat. Az alábbi példák az ilyen grafikonokra mutatnak be példákat:

  • 1. példa: Önrekurzív

    • dlo.LoadWith<Employee>(e => e.Reports);
  • 2. példa: Visszamutatók

    • dlo.LoadWith <Customer>(c => C.Orders);
    • dlo.LoadWith <Order>(o => o.Customer);
  • 3. példa: Hosszabb ciklusok

    Bár ez nem történhet meg egy jól normalizált modellben, lehetséges.

    • dlo.LoadWith <A>(a => a.Bs);
    • dlo.LoadWith <B>(b => b.Cs);
    • dlo.LoadWith <C>(c => c.As);
  • 4. példa: Önrekurzív subQueries

    • dlo.AssociateWith<A>(a=>a.As.Where(a=>a.Id=33));
  • 5. példa: Hosszabb rekurzív subqueries

    • dlo.AssociateWith<A>(a=>a.Bs.Where(b=>b.Id==3));
    • dlo.AssociateWith<B>(b=>b.As.Where(a=>a.Id==3));

Az alábbi általános szabályok segítenek megérteni, hogy mi történik ezekben a forgatókönyvekben:

  • LoadWith: Minden hívás ellenőrzi, hogy LoadWith a ciklusok bekerültek-e a gráfba. Ha az 1., a 2. és a 3. példában is vannak kivételek.

  • AssociateWith: Futásidőben a motor nem alkalmazza a meglévő SubQuery záradékokat a kifejezésen belüli kapcsolatra.

    • A 4. példában a Where záradék nem csak a SubQuery kifejezés által alszűrett összesre lesz végrehajtva A(mert az rekurzív lenne).
    • Az 5. példában a rendszer az első Where záradékot alkalmazza az Bösszes s-ra, annak ellenére, hogy vannak al lekérdezések.B A második Where záradék az összes As-ra vonatkozik, annak ellenére, hogy vannak alqueries on A.

Konstruktorok

Name Description
DataLoadOptions()

Inicializálja a DataLoadOptions osztály új példányát.

Metódusok

Name Description
AssociateWith(LambdaExpression)

Szűri az adott kapcsolathoz beolvasott objektumokat.

AssociateWith<T>(Expression<Func<T,Object>>)

Szűri az adott kapcsolathoz beolvasott objektumokat.

Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
LoadWith(LambdaExpression)

Lambda-kifejezéssel kéri le a fő célhoz kapcsolódó megadott adatokat.

LoadWith<T>(Expression<Func<T,Object>>)

Meghatározza, hogy mely alobjektumokat kell lekérni, amikor egy lekérdezést egy T típusú objektumhoz küld.

MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)

A következőre érvényes: