DataLoadOptions Classe

Définition

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 :

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 Where clause est exécutée sur tous A, 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 Where clause est appliquée à tous les Bs, même s’il existe des sous-requêtes sur B. La deuxième Where clause est appliquée à tous les As, même s’il existe des sous-requêtes sur A.

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)

S’applique à