DataLoadOptions.LoadWith Método
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.
Sobrecargas
LoadWith(LambdaExpression) |
Recupera dados especificados relacionados ao destino principal usando uma expressão lambda. |
LoadWith<T>(Expression<Func<T,Object>>) |
Especifica quais objetos abaixo recuperar quando uma consulta é enviada para um objeto do tipo T. |
LoadWith(LambdaExpression)
Recupera dados especificados relacionados ao destino principal usando uma expressão lambda.
public:
void LoadWith(System::Linq::Expressions::LambdaExpression ^ expression);
public void LoadWith (System.Linq.Expressions.LambdaExpression expression);
member this.LoadWith : System.Linq.Expressions.LambdaExpression -> unit
Public Sub LoadWith (expression As LambdaExpression)
Parâmetros
- expression
- LambdaExpression
Uma expressão lambda que identifica o material relacionado.
Exemplos
Northwnd db = new Northwnd(@"c:\northwnd.mdf");
DataLoadOptions dlo = new DataLoadOptions();
dlo.LoadWith<Customer>(c => c.Orders);
db.LoadOptions = dlo;
var londonCustomers =
from cust in db.Customers
where cust.City == "London"
select cust;
foreach (var custObj in londonCustomers)
{
Console.WriteLine(custObj.CustomerID);
}
Dim db As New Northwnd("c:\northwnd.mdf")
Dim dlo As DataLoadOptions = New DataLoadOptions()
dlo.LoadWith(Of Customer)(Function(c As Customer) c.Orders)
db.LoadOptions = dlo
Dim londonCustomers = _
From cust In db.Customers _
Where cust.City = "London" _
Select cust
For Each custObj In londonCustomers
Console.WriteLine(custObj.CustomerID)
Next
Comentários
No exemplo a seguir, qualquer Orders
para qualquer Customers
que está localizado em Londres é recuperado quando a consulta é executada. Como resultado, o acesso são a propriedade de Orders
em um objeto de Customer
não dispara uma nova consulta de base de dados.
Aplica-se a
LoadWith<T>(Expression<Func<T,Object>>)
Especifica quais objetos abaixo recuperar quando uma consulta é enviada para um objeto do tipo T.
public:
generic <typename T>
void LoadWith(System::Linq::Expressions::Expression<Func<T, System::Object ^> ^> ^ expression);
public void LoadWith<T> (System.Linq.Expressions.Expression<Func<T,object>> expression);
member this.LoadWith : System.Linq.Expressions.Expression<Func<'T, obj>> -> unit
Public Sub LoadWith(Of T) (expression As Expression(Of Func(Of T, Object)))
Parâmetros de tipo
- T
O tipo que é consultado.
Se esse tipo não estiver mapeado, uma exceção será gerada.
Parâmetros
- expression
- Expression<Func<T,Object>>
Identifica o campo ou propriedade a ser recuperada.
Se a expressão não identificar um campo ou propriedade que representa uma relação um-para-um ou um-para-muitos, uma exceção será gerada.
Exemplos
No exemplo a seguir, qualquer Orders
para qualquer Customers
que está localizado em Londres é recuperado quando a consulta é executada. Como resultado, o acesso são a propriedade de Orders
em um objeto de Customer
não dispara uma nova consulta de base de dados.
Northwnd db = new Northwnd(@"c:\northwnd.mdf");
DataLoadOptions dlo = new DataLoadOptions();
dlo.LoadWith<Customer>(c => c.Orders);
db.LoadOptions = dlo;
var londonCustomers =
from cust in db.Customers
where cust.City == "London"
select cust;
foreach (var custObj in londonCustomers)
{
Console.WriteLine(custObj.CustomerID);
}
Dim db As New Northwnd("c:\northwnd.mdf")
Dim dlo As DataLoadOptions = New DataLoadOptions()
dlo.LoadWith(Of Customer)(Function(c As Customer) c.Orders)
db.LoadOptions = dlo
Dim londonCustomers = _
From cust In db.Customers _
Where cust.City = "London" _
Select cust
For Each custObj In londonCustomers
Console.WriteLine(custObj.CustomerID)
Next
Comentários
Você não pode especificar o carregamento de dois níveis de relações (por exemplo, Orders.OrderDetails
). Nesses cenários, você deve especificar dois métodos separados LoadWith .
Para evitar o ciclismo, consulte a seção Comentários em DataLoadOptions.