DataLoadOptions Classe

Definizione

Fornisce il caricamento e il filtraggio immediati dei dati correlati.Provides for immediate loading and filtering of related data.

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

Esempi

Quando si recupera Customers dal database di esempio Northwind, è possibile usare DataLoadOptions per specificare che Orders deve essere recuperato anche.When you retrieve Customers from the Northwind sample database, you can use DataLoadOptions to specify that Orders is also to be retrieved. È anche possibile specificare il subset di Orders da recuperare.You can even specify which subset of Orders to retrieve.

Commenti

GeneraleGeneral

Quando si esegue una query per un oggetto, si recupera in effetti solo l'oggetto richiesto.When you query for an object, you actually retrieve only the object you requested. Gli oggetti correlati non vengono recuperati automaticamente nello stesso momento.The related objects are not automatically fetched at the same time. Per ulteriori informazioni, vedere esecuzione di query tra relazioni.(For more information, see Querying Across Relationships.)

La DataLoadOptions classe fornisce due metodi per ottenere il caricamento immediato dei dati correlati specificati.The DataLoadOptions class provides two methods to achieve immediate loading of specified related data. Il LoadWith metodo consente il caricamento immediato dei dati correlati alla destinazione principale.The LoadWith method allows for immediate loading of data related to the main target. Il AssociateWith metodo consente di filtrare gli oggetti correlati.The AssociateWith method allows for filtering related objects.

RegoleRules

Si notino le seguenti DataLoadOptions regole relative all'utilizzo:Note the following rules regarding DataLoadOptions usage:

Gestione del cicloCycle Handling

LoadWithle AssociateWith direttive e non devono creare cicli.LoadWith and AssociateWith directives must not create cycles. Di seguito sono riportati esempi di grafici di questo tipo:The following represent examples of such graphs:

  • Esempio 1: Ricorsivo automaticoExample 1: Self recursive

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

    • dlo.LoadWith <Customer>(c => C.Orders);

    • dlo.LoadWith <Order>(o => o.Customer);

  • Esempio 3: Cicli più lunghiExample 3: Longer cycles

    Sebbene non venga eseguita in un modello ben normalizzato, è possibile.Although this should not occur in a well-normalized model, it is possible.

    • dlo.LoadWith <A>(a => a.Bs);

    • dlo.LoadWith <B>(b => b.Cs);

    • dlo.LoadWith <C>(c => c.As);

  • Esempio 4: Sottoquery autoricorsiveExample 4: Self recursive subQueries

    • dlo.AssociateWith<A>(a=>a.As.Where(a=>a.Id=33));
  • Esempio 5: Sottoquery ricorsive più lungheExample 5: Longer recursive subqueries

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

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

Di seguito sono riportate alcune regole generali che consentono di comprendere cosa accade in questi scenari.The following are some general rules that help you understand what occurs in these scenarios.

LoadWith Ogni chiamata a LoadWith controlla se i cicli sono stati introdotti nel grafico.LoadWith Each call to LoadWith checks whether cycles have been introduced into the graph. Se sono presenti, come negli esempi 1, 2 e 3, viene generata un'eccezione.If there are, as in Examples 1, 2, and 3, an exception is thrown.

AssociateWith Il motore in fase di esecuzione non applica le clausole della sottoquery esistente alla relazione all'interno dell'espressione.AssociateWith The engine at run time does not apply the existing SubQuery clauses to the relationship inside the expression.

  • Nell'esempio 4, la Where clausola viene eseguita su All A, non solo su quelle sottofiltrate dall'espressione di sottoquery stessa (perché sarebbe ricorsivo)In Example 4, the Where clause is executed against all A, not just the ones sub-filtered by the SubQuery expression itself (because that would be recursive)

  • Nell'esempio 5 la prima Where clausola viene applicata a tutte le Bistanze di, anche se sono presenti sottoquery su B.In Example 5, the first Where clause is applied to all the Bs, even though there are subqueries on B. La seconda Where clausola viene applicata a tutte le Aistanze di anche se sono presenti sottoquery su A.The second Where clause is applied to all the As even though there are subqueries on A.

Costruttori

DataLoadOptions()

Inizializza una nuova istanza della classe DataLoadOptions.Initializes a new instance of the DataLoadOptions class.

Metodi

AssociateWith(LambdaExpression)

Filtra gli oggetti recuperati per una determinata relazione.Filters the objects retrieved for a particular relationship.

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

Filtra gli oggetti recuperati per una determinata relazione.Filters objects retrieved for a particular relationship.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
GetAssociationCriteria(MemberInfo, LambdaExpression)
GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
IsImmediate(MemberInfo)
LoadWith(LambdaExpression)

Recupera i dati specificati correlati alla destinazione principale utilizzando un'espressione lambda.Retrieves specified data related to the main target by using a lambda expression.

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

Specifica gli oggetti secondari da recuperare quando viene inviata una query per un oggetto di tipo T.Specifies which sub-objects to retrieve when a query is submitted for an object of type T.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)

Si applica a