DataLoadOptions Klas

Definitie

Voorziet in het direct laden en filteren van gerelateerde gegevens.

public ref class DataLoadOptions sealed
public sealed class DataLoadOptions
type DataLoadOptions = class
Public NotInheritable Class DataLoadOptions
Overname
DataLoadOptions

Voorbeelden

Wanneer u ophaalt Customers uit de northwind-voorbeelddatabase, kunt DataLoadOptions u opgeven dat Orders ook moet worden opgehaald. U kunt zelfs opgeven welke subset moet Orders worden opgehaald.

Opmerkingen

De DataLoadOptions klasse biedt direct laden en filteren van gerelateerde gegevens.

Wanneer u een query uitvoert op een object, haalt u eigenlijk alleen het object op dat u hebt aangevraagd. De gerelateerde objecten worden niet automatisch tegelijk opgehaald. Zie Query's uitvoeren op meerdere relaties voor meer informatie.

De DataLoadOptions klasse biedt twee methoden voor het direct laden van opgegeven gerelateerde gegevens. Met de LoadWith methode kunt u direct gegevens laden die betrekking hebben op het hoofddoel. Met de AssociateWith methode kunt u gerelateerde objecten filteren.

Rules

Houd rekening met de volgende regels met betrekking tot DataLoadOptions gebruik:

Cycli verwerken

LoadWith en AssociateWith richtlijnen mogen geen cycli maken. Hieronder ziet u voorbeelden van dergelijke grafieken:

  • Voorbeeld 1: Zelf recursief

    • dlo.LoadWith<Employee>(e => e.Reports);
  • Voorbeeld 2: Back-pointers

    • dlo.LoadWith <Customer>(c => C.Orders);
    • dlo.LoadWith <Order>(o => o.Customer);
  • Voorbeeld 3: Langere cycli

    Hoewel dit niet zou moeten gebeuren in een goed genormaliseerd model, is het mogelijk.

    • dlo.LoadWith <A>(a => a.Bs);
    • dlo.LoadWith <B>(b => b.Cs);
    • dlo.LoadWith <C>(c => c.As);
  • Voorbeeld 4: Zelf recursieve subquery's

    • dlo.AssociateWith<A>(a=>a.As.Where(a=>a.Id=33));
  • Voorbeeld 5: Langere recursieve subquery's

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

De volgende algemene regels helpen u te begrijpen wat er in deze scenario's gebeurt:

  • LoadWith: Elke aanroep om te LoadWith controleren of er cycli zijn ingevoerd in de grafiek. Als er, zoals in voorbeelden 1, 2 en 3, een uitzondering wordt gegenereerd.

  • AssociateWith: Tijdens runtime past de engine de bestaande SubQuery-componenten niet toe op de relatie binnen de expressie.

    • In voorbeeld 4 wordt de Where component uitgevoerd voor iedereen A, niet alleen de subfilters door de SubQuery-expressie zelf (omdat dat recursief zou zijn).
    • In voorbeeld 5 wordt de eerste Where component toegepast op alle Bs, ook al zijn er subquery's ingeschakeld B. De tweede Where component wordt toegepast op alle As, ook al zijn er subquery's ingeschakeld A.

Constructors

Name Description
DataLoadOptions()

Initialiseert een nieuw exemplaar van de DataLoadOptions klasse.

Methoden

Name Description
AssociateWith(LambdaExpression)

Hiermee filtert u de objecten die zijn opgehaald voor een bepaalde relatie.

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

Hiermee filtert u objecten die zijn opgehaald voor een bepaalde relatie.

Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
LoadWith(LambdaExpression)

Hiermee worden opgegeven gegevens opgehaald die betrekking hebben op het hoofddoel met behulp van een lambda-expressie.

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

Hiermee geeft u op welke subobjecten moeten worden opgehaald wanneer een query wordt verzonden voor een object van het type T.

MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Van toepassing op