DataLoadOptions Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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:
- Atribuir um DataLoadOptions a um DataContext após a execução da primeira consulta gera uma exceção.
- Modificar um DataLoadOptions após ele ter sido atribuído a uma DataContext gera uma exceção.
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
Wherecláusula é executada em relação a todosA, não apenas aos subfiltreados pela própria expressão SubQuery (porque isso seria recursivo). - No Exemplo 5, a primeira
Wherecláusula é aplicada a todos osBs, mesmo que haja subconsultas.BA segundaWherecláusula é aplicada a todos osAs, embora haja subconsultas.A
- No Exemplo 4, 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) |