DataLoadOptions.LoadWith Método

Definición

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.

Se aplica a