DataLoadOptions Classe

Definizione

Fornisce il caricamento immediato e il filtro dei dati correlati.

public ref class DataLoadOptions sealed
public sealed class DataLoadOptions
type DataLoadOptions = class
Public NotInheritable Class DataLoadOptions
Ereditarietà
DataLoadOptions

Esempio

Quando si recupera Customers dal database di esempio Northwind, è possibile usare DataLoadOptions per specificare che Orders deve essere recuperato anche. È anche possibile specificare il subset di Orders da recuperare.

Commenti

La DataLoadOptions classe fornisce il caricamento immediato e il filtro dei dati correlati.

Quando si esegue una query per un oggetto, si recupera effettivamente solo l'oggetto richiesto. Gli oggetti correlati non vengono recuperati automaticamente contemporaneamente. Per ulteriori informazioni, consulta Querying Across Relationships.

La DataLoadOptions classe fornisce due metodi per ottenere il caricamento immediato dei dati correlati specificati. Il LoadWith metodo consente il caricamento immediato dei dati correlati alla destinazione principale. Il AssociateWith metodo consente di filtrare gli oggetti correlati.

Regole

Considerare le regole seguenti relative all'utilizzo DataLoadOptions :

Gestire i cicli

LoadWith le direttive e AssociateWith non devono creare cicli. Di seguito sono riportati esempi di tali grafici:

  • Esempio 1: Autocursive

    • dlo.LoadWith<Employee>(e => e.Reports);
  • Esempio 2: back-pointer

    • dlo.LoadWith <Customer>(c => C.Orders);
    • dlo.LoadWith <Order>(o => o.Customer);
  • Esempio 3: cicli più lunghi

    Anche se questo non deve verificarsi in un modello ben normalizzato, è possibile.

    • dlo.LoadWith <A>(a => a.Bs);
    • dlo.LoadWith <B>(b => b.Cs);
    • dlo.LoadWith <C>(c => c.As);
  • Esempio 4: Sottoquery ricorsive self-recursive

    • dlo.AssociateWith<A>(a=>a.As.Where(a=>a.Id=33));
  • Esempio 5: sottoquery ricorsive più lunghe

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

Le regole generali seguenti consentono di comprendere cosa accade in questi scenari:

  • LoadWith: ogni chiamata a LoadWith controlla se i cicli sono stati introdotti nel grafico. Se sono presenti, come negli esempi 1, 2 e 3, viene generata un'eccezione.

  • AssociateWith: in fase di esecuzione, il motore non applica le clausole SubQuery esistenti alla relazione all'interno dell'espressione.

    • Nell'esempio 4, la Where clausola viene eseguita su tutti A, non solo su quelli filtrati in base all'espressione SubQuery stessa (perché ciò sarebbe ricorsivo).
    • Nell'esempio 5 la prima Where clausola viene applicata a tutti gli Boggetti , anche se sono presenti sottoquery in B. La seconda Where clausola viene applicata a tutti gli Aelementi anche se sono presenti sottoquery in A.

Costruttori

Nome Descrizione
DataLoadOptions()

Inizializza una nuova istanza della classe DataLoadOptions.

Metodi

Nome Descrizione
AssociateWith(LambdaExpression)

Filtra gli oggetti recuperati per una determinata relazione.

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

Filtra gli oggetti recuperati per una determinata relazione.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
LoadWith(LambdaExpression)

Recupera i dati specificati correlati alla destinazione principale usando un'espressione lambda.

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

Specifica quali oggetti secondari recuperare quando viene inviata una query per un oggetto di tipo T.

MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a