DataLoadOptions Classe

Definição

Fornece o carregamento imediato e a filtragem de dados relacionados.

public ref class DataLoadOptions sealed
public sealed class DataLoadOptions
type DataLoadOptions = class
Public NotInheritable Class DataLoadOptions
Herança
DataLoadOptions

Exemplos

Quando você recupera Customers do banco de dados de exemplo northwind, você pode usar DataLoadOptions para especificar que Orders também deve ser recuperado. Você pode até mesmo especificar qual subconjunto deve Orders ser recuperado.

Comentários

A DataLoadOptions classe fornece o carregamento imediato e a filtragem de dados relacionados.

Ao consultar um objeto, você realmente recupera apenas o objeto solicitado. Os objetos relacionados não são buscados automaticamente ao mesmo tempo. Para obter mais informações, consulte Consultar entre relações.

A DataLoadOptions classe fornece dois métodos para obter o carregamento imediato de dados relacionados especificados. O LoadWith método permite o carregamento imediato de dados relacionados ao destino principal. O AssociateWith método permite filtrar objetos relacionados.

Regras

Considere as seguintes regras sobre o DataLoadOptions uso:

Manipular ciclos

LoadWith e AssociateWith as diretivas não devem criar ciclos. Os seguintes representam exemplos desses grafos:

  • Exemplo 1: auto-recursivo

    • dlo.LoadWith<Employee>(e => e.Reports);
  • Exemplo 2: ponteiros de fundo

    • dlo.LoadWith <Customer>(c => C.Orders);
    • dlo.LoadWith <Order>(o => o.Customer);
  • Exemplo 3: ciclos mais longos

    Embora isso não deva ocorrer em um modelo bem normalizado, é possível.

    • dlo.LoadWith <A>(a => a.Bs);
    • dlo.LoadWith <B>(b => b.Cs);
    • dlo.LoadWith <C>(c => c.As);
  • Exemplo 4: subConsultas autocursivas

    • dlo.AssociateWith<A>(a=>a.As.Where(a=>a.Id=33));
  • Exemplo 5: subconsultas recursivas mais longas

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

As seguintes regras gerais ajudam você a entender o que ocorre nesses cenários:

  • LoadWith: cada chamada para LoadWith verificar se os ciclos foram introduzidos no grafo. Se houver, como nos Exemplos 1, 2 e 3, uma exceção será gerada.

  • AssociateWith: em tempo de execução, o mecanismo não aplica as cláusulas SubQuery existentes à relação dentro da expressão.

    • No Exemplo 4, a Where cláusula é executada em relação a todos A, não apenas aos subfiltreados pela própria expressão SubQuery (porque isso seria recursivo).
    • No Exemplo 5, a primeira Where cláusula é aplicada a todos os Bs, mesmo que haja subconsultas.B A segunda Where cláusula é aplicada a todos os As, embora haja subconsultas.A

Construtores

Nome Description
DataLoadOptions()

Inicializa uma nova instância da classe DataLoadOptions.

Métodos

Nome Description
AssociateWith(LambdaExpression)

Filtra os objetos recuperados para uma relação específica.

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

Filtra objetos recuperados para uma relação específica.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
LoadWith(LambdaExpression)

Recupera dados especificados relacionados ao destino principal usando uma expressão lambda.

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

Especifica quais sub-objetos recuperar quando uma consulta é enviada para um objeto do tipo T.

MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a