DataLoadOptions.LoadWith Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Sobrecargas
| Nombre | Description |
|---|---|
| LoadWith(LambdaExpression) |
Recupera los datos especificados relacionados con el destino principal mediante una expresión lambda. |
| LoadWith<T>(Expression<Func<T,Object>>) |
Especifica los subobjetos que se van a recuperar cuando se envía una consulta para un objeto de tipo T. |
LoadWith(LambdaExpression)
Recupera los datos especificados relacionados con el destino principal mediante una expresión 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
Expresión lambda que identifica el material relacionado.
Ejemplos
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
Comentarios
En el ejemplo siguiente, se recuperan todos Orders los elementos para todos los Customers que se encuentran en Londres cuando se ejecuta la consulta. Como resultado, el acceso sucesivo a la Orders propiedad en un Customer objeto no desencadena una nueva consulta de base de datos.
Se aplica a
LoadWith<T>(Expression<Func<T,Object>>)
Especifica los subobjetos que se van a recuperar cuando se envía una consulta para un objeto de 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
Tipo en el que se consulta.
Si este tipo no está asignado, se produce una excepción.
Parámetros
- expression
- Expression<Func<T,Object>>
Identifica el campo o la propiedad que se va a recuperar.
Si la expresión no identifica un campo o propiedad que representa una relación uno a uno o uno a varios, se produce una excepción.
Ejemplos
En el ejemplo siguiente, se recuperan todos Orders los elementos para todos los Customers que se encuentran en Londres cuando se ejecuta la consulta. Como resultado, el acceso sucesivo a la Orders propiedad en un Customer objeto no desencadena una nueva consulta de base de datos.
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
Comentarios
No se puede especificar la carga de dos niveles de relaciones (por ejemplo, Orders.OrderDetails). En estos escenarios, debe especificar dos métodos independientes LoadWith .
Para evitar el ciclismo, vea la sección Comentarios en DataLoadOptions.