DataLoadOptions.LoadWith Metodo

Definizione

Overload

LoadWith(LambdaExpression)

Recupera i dati specificati correlati alla destinazione principale utilizzando un'espressione lambda.

LoadWith<T>(Expression<Func<T,Object>>)

Specifica gli oggetti secondari da recuperare quando viene inviata una query per un oggetto di tipo T.

LoadWith(LambdaExpression)

Recupera i dati specificati correlati alla destinazione principale utilizzando un'espressione 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)

Parametri

expression
LambdaExpression

Espressione lambda che identifica il materiale correlato.

Esempio

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

Commenti

Nell'esempio seguente tutti gli oggetti Orders di tutti gli oggetti Customers residenti nell'area londinese vengono recuperati quando viene eseguita la query. Di conseguenza, l'accesso successivo alla proprietà Orders su un oggetto Customer non avvia una nuova query di database.

Si applica a

LoadWith<T>(Expression<Func<T,Object>>)

Specifica gli oggetti secondari da recuperare quando viene inviata una query per un oggetto di 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)))

Parametri di tipo

T

Tipo sul quale viene eseguita la query.

Se il tipo non è mappato, viene generata un'eccezione.

Parametri

expression
Expression<Func<T,Object>>

Identifica il campo o la proprietà da recuperare.

Se l'espressione non identifica un campo o una proprietà che rappresenta una relazione uno-a-uno o uno-a-molti, viene generata un'eccezione.

Esempio

Nell'esempio seguente tutti gli oggetti Orders di tutti gli oggetti Customers residenti nell'area londinese vengono recuperati quando viene eseguita la query. Di conseguenza, l'accesso successivo alla proprietà Orders su un oggetto Customer non avvia una nuova query di database.

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

Commenti

Non è possibile specificare il caricamento di due livelli di relazioni, ad esempio Orders.OrderDetails. In questi scenari è necessario specificare due metodi separati LoadWith .

Per evitare il ciclo, vedere La sezione Osservazioni in DataLoadOptions.

Si applica a