DataLoadOptions Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Fournit le chargement et le filtrage immédiats des données associées.
public ref class DataLoadOptions sealed
public sealed class DataLoadOptions
type DataLoadOptions = class
Public NotInheritable Class DataLoadOptions
- Héritage
-
DataLoadOptions
Exemples
Lorsque vous récupérez Customers à partir de l’exemple de base de données Northwind, vous pouvez l’utiliser DataLoadOptions pour spécifier qu’il Orders doit également être récupéré. Vous pouvez même spécifier le sous-ensemble de Orders récupération.
Remarques
La DataLoadOptions classe fournit un chargement et un filtrage immédiats des données associées.
Lorsque vous interrogez un objet, vous récupérez uniquement l’objet que vous avez demandé. Les objets associés ne sont pas récupérés automatiquement en même temps. Pour plus d’informations, consultez Interrogation avec les relations.
La DataLoadOptions classe fournit deux méthodes pour effectuer le chargement immédiat des données associées spécifiées. La LoadWith méthode permet le chargement immédiat de données liées à la cible principale. La AssociateWith méthode permet de filtrer les objets associés.
Règles
Tenez compte des règles suivantes concernant DataLoadOptions l’utilisation :
- L’affectation d’une DataLoadOptionsDataContext requête après l’exécution de la première requête génère une exception.
- La modification d’une DataLoadOptions fois qu’elle a été affectée à une DataContext exception génère une exception.
Gérer les cycles
LoadWith et les AssociateWith directives ne doivent pas créer de cycles. Les exemples suivants représentent des graphiques de ce type :
Exemple 1 : Auto-récursif
dlo.LoadWith<Employee>(e => e.Reports);
Exemple 2 : pointeurs précédents
dlo.LoadWith <Customer>(c => C.Orders);dlo.LoadWith <Order>(o => o.Customer);
Exemple 3 : Cycles plus longs
Bien que cela ne se produise pas dans un modèle bien normalisé, il est possible.
dlo.LoadWith <A>(a => a.Bs);dlo.LoadWith <B>(b => b.Cs);dlo.LoadWith <C>(c => c.As);
Exemple 4 : Sous-requêtes récursives auto-récursives
dlo.AssociateWith<A>(a=>a.As.Where(a=>a.Id=33));
Exemple 5 : Sous-requêtes récursives plus longues
dlo.AssociateWith<A>(a=>a.Bs.Where(b=>b.Id==3));dlo.AssociateWith<B>(b=>b.As.Where(a=>a.Id==3));
Les règles générales suivantes vous aident à comprendre ce qui se produit dans ces scénarios :
LoadWith: chaque appel pour LoadWith vérifier si des cycles ont été introduits dans le graphique. S’il existe, comme dans les exemples 1, 2 et 3, une exception est levée.
AssociateWith: au moment de l’exécution, le moteur n’applique pas les clauses de sous-requête existantes à la relation à l’intérieur de l’expression.
- Dans l’exemple 4, la
Whereclause est exécutée sur tousA, et pas seulement sur celles qui sont sous-filtrées par l’expression SubQuery elle-même (car cela serait récursif). - Dans l’exemple 5, la première
Whereclause est appliquée à tous lesBs, même s’il existe des sous-requêtes surB. La deuxièmeWhereclause est appliquée à tous lesAs, même s’il existe des sous-requêtes surA.
- Dans l’exemple 4, la
Constructeurs
| Nom | Description |
|---|---|
| DataLoadOptions() |
Initialise une nouvelle instance de la classe DataLoadOptions. |
Méthodes
| Nom | Description |
|---|---|
| AssociateWith(LambdaExpression) |
Filtre les objets récupérés pour une relation particulière. |
| AssociateWith<T>(Expression<Func<T,Object>>) |
Filtre les objets récupérés pour une relation particulière. |
| Equals(Object) |
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
| GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
| GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| LoadWith(LambdaExpression) |
Récupère les données spécifiées liées à la cible principale à l’aide d’une expression lambda. |
| LoadWith<T>(Expression<Func<T,Object>>) |
Spécifie les sous-objets à récupérer lorsqu’une requête est envoyée pour un objet de type T. |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| ToString() |
Retourne une chaîne qui représente l’objet actuel. (Hérité de Object) |