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
LoadWith(LambdaExpression) |
Recupera los datos especificados que están relacionados con el destino principal utilizando una expresión lambda. |
LoadWith<T>(Expression<Func<T,Object>>) |
Especifica los subobjetos que se van a recuperar cuando se envíe una consulta para un objeto de tipo T. |
LoadWith(LambdaExpression)
Recupera los datos especificados que están relacionados con el destino principal utilizando 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 siguiente ejemplo, se recuperan todos los Orders
de todos los Customers
de Londres cuando se ejecuta la consulta. En consecuencia, el acceso posterior a la propiedad Orders
de un objeto Customer
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íe 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 realizan las consultas.
Si se trata de un tipo no 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 una propiedad que represente una relación uno a uno o uno a varios, se produce una excepción.
Ejemplos
En el siguiente ejemplo, se recuperan todos los Orders
de todos los Customers
de Londres cuando se ejecuta la consulta. En consecuencia, el acceso posterior a la propiedad Orders
de un objeto Customer
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.