DataLoadOptions.LoadWith Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Sobrecargas
| Name | Description |
|---|---|
| LoadWith(LambdaExpression) |
Recupera dados especificados relacionados com o alvo principal utilizando uma expressão lambda. |
| LoadWith<T>(Expression<Func<T,Object>>) |
Especifica quais subobjetos recuperar quando é submetida uma consulta para um objeto do tipo T. |
LoadWith(LambdaExpression)
Recupera dados especificados relacionados com o alvo principal utilizando 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
Observações
No exemplo seguinte, todos os Orders de todos os Customers que estão localizados em Londres são recuperados quando a consulta é executada. Como resultado, o acesso sucessivo à Orders propriedade sobre um Customer objeto não desencadeia uma nova consulta à base de dados.
Aplica-se a
LoadWith<T>(Expression<Func<T,Object>>)
Especifica quais subobjetos recuperar quando é submetida uma consulta 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 Genérico
- T
Tipo contra o qual é questionado.
Se este tipo não for mapeado, é lançada uma exceção.
Parâmetros
- expression
- Expression<Func<T,Object>>
Identifica o campo ou propriedade a recuperar.
Se a expressão não identificar um campo ou propriedade que represente uma relação um-para-um ou um-para-muitos, é lançada uma exceção.
Exemplos
No exemplo seguinte, todos os Orders de todos os Customers que estão localizados em Londres são recuperados quando a consulta é executada. Como resultado, o acesso sucessivo à Orders propriedade sobre um Customer objeto não desencadeia uma nova consulta à 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
Observações
Não pode especificar a carga de dois níveis de relações (por exemplo, Orders.OrderDetails). Nestes cenários, deve especificar dois métodos separados LoadWith .
Para evitar ciclismo, consulte a secção de Observações em DataLoadOptions.