Share via


DataLoadOptions.LoadWith Método

Definición

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.

Se aplica a