DataLoadOptions DataLoadOptions DataLoadOptions DataLoadOptions Class

Definição

Fornece carregamento imediato e filtragem de dados relacionados.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
Herança
DataLoadOptionsDataLoadOptionsDataLoadOptionsDataLoadOptions

Exemplos

Ao recuperar Customers do banco de dados de exemplo Northwind, você pode DataLoadOptions usar para especificar Orders que também será recuperado.When you retrieve Customers from the Northwind sample database, you can use DataLoadOptions to specify that Orders is also to be retrieved. Você pode até mesmo especificar qual subconjunto de Orders recuperar.You can even specify which subset of Orders to retrieve.

Comentários

GeralGeneral

Quando você consulta para um objeto, você só retorna o objeto que você solicitou.When you query for an object, you actually retrieve only the object you requested. Os objetos relacionados não são buscados automaticamente ao mesmo tempo.The related objects are not automatically fetched at the same time. (Para obter mais informações, consulte consultando entre relações.)(For more information, see Querying Across Relationships.)

A DataLoadOptions classe fornece dois métodos para obter o carregamento imediato de dados relacionados especificados.The DataLoadOptions class provides two methods to achieve immediate loading of specified related data. O LoadWith método permite o carregamento imediato de dados relacionados ao destino principal.The LoadWith method allows for immediate loading of data related to the main target. O AssociateWith método permite a filtragem de objetos relacionados.The AssociateWith method allows for filtering related objects.

RegrasRules

Observe as regras a seguir DataLoadOptions sobre o uso:Note the following rules regarding DataLoadOptions usage:

Tratamento de cicloCycle Handling

LoadWithas AssociateWith diretivas e não devem criar ciclos.LoadWith and AssociateWith directives must not create cycles. O exemplo a seguir representa exemplos desses grafos:The following represent examples of such graphs:

  • Exemplo 1: Auto-RecursivoExample 1: Self recursive

    • dlo.LoadWith<Employee>(e => e.Reports);
  • Exemplo 2: Ponteiros de apoioExample 2: Back-pointers

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

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

  • Exemplo 3: Ciclos mais longosExample 3: Longer cycles

    Embora isso não ocorra em um modelo bem normalizado, é possível.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);

  • Exemplo 4: Subconsultas recursivasExample 4: Self recursive subQueries

    • dlo.AssociateWith<A>(a=>a.As.Where(a=>a.Id=33));
  • Exemplo 5: Subconsultas mais recursivasExample 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));

Veja a seguir algumas regras gerais que ajudam a entender o que ocorre nesses cenários.The following are some general rules that help you understand what occurs in these scenarios.

Loadcom Cada chamada para LoadWith verifica se os ciclos foram introduzidos no grafo.LoadWith Each call to LoadWith checks whether cycles have been introduced into the graph. Se houver, como nos exemplos 1, 2 e 3, uma exceção será lançada.If there are, as in Examples 1, 2, and 3, an exception is thrown.

AssociateWith O mecanismo em tempo de execução não aplica as cláusulas de subconsulta existentes à relação dentro da expressão.AssociateWith The engine at run time does not apply the existing SubQuery clauses to the relationship inside the expression.

  • No exemplo 4, a Where cláusula é executada em relação Aa todos, não apenas àqueles subfiltrados pela própria expressão de subconsulta (porque isso seria recursivo)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)

  • No exemplo 5, a primeira Where cláusula é aplicada a todos os Bs, mesmo que haja subconsultas em B.In Example 5, the first Where clause is applied to all the Bs, even though there are subqueries on B. A segunda Where cláusula é aplicada a todos os As, mesmo que haja subconsultas Aem.The second Where clause is applied to all the As even though there are subqueries on A.

Construtores

DataLoadOptions() DataLoadOptions() DataLoadOptions() DataLoadOptions()

Inicializa uma nova instância da classe DataLoadOptions.Initializes a new instance of the DataLoadOptions class.

Métodos

AssociateWith(LambdaExpression) AssociateWith(LambdaExpression) AssociateWith(LambdaExpression) AssociateWith(LambdaExpression)

Filtra os objetos recuperados para um relacionamento específico.Filters the objects retrieved for a particular relationship.

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

Filtra os objetos recuperados para um relacionamento específico.Filters objects retrieved for a particular relationship.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetAssociationCriteria(MemberInfo, LambdaExpression) GetAssociationCriteria(MemberInfo, LambdaExpression) GetAssociationCriteria(MemberInfo, LambdaExpression) GetAssociationCriteria(MemberInfo, LambdaExpression)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Serve como a função de hash padrão.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Obtém o Type da instância atual.Gets the Type of the current instance.

(Inherited from Object)
IsImmediate(MemberInfo) IsImmediate(MemberInfo) IsImmediate(MemberInfo) IsImmediate(MemberInfo)
LoadWith(LambdaExpression) LoadWith(LambdaExpression) LoadWith(LambdaExpression) LoadWith(LambdaExpression)

Recupera dados especificados relacionados ao destino principal usando uma expressão lambda.Retrieves specified data related to the main target by using a lambda expression.

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

Especifica quais objetos abaixo recuperar quando uma consulta é enviada para um objeto do tipo T.Specifies which sub-objects to retrieve when a query is submitted for an object of type T.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.Returns a string that represents the current object.

(Inherited from Object)

Aplica-se a