DataLoadOptions Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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:
- Als u een DataLoadOptions aan een toewijst DataContext nadat de eerste query is uitgevoerd, wordt er een uitzondering gegenereerd.
- Als u een DataLoadOptions uitzondering wijzigt nadat deze is toegewezen aan een DataContext uitzondering.
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
Wherecomponent uitgevoerd voor iedereenA, niet alleen de subfilters door de SubQuery-expressie zelf (omdat dat recursief zou zijn). - In voorbeeld 5 wordt de eerste
Wherecomponent toegepast op alleBs, ook al zijn er subquery's ingeschakeldB. De tweedeWherecomponent wordt toegepast op alleAs, ook al zijn er subquery's ingeschakeldA.
- In voorbeeld 4 wordt de
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) |