Share via


DataLoadOptions.LoadWith Méthode

Définition

Surcharges

LoadWith(LambdaExpression)

Récupère des données spécifiées associées à la cible principale à l'aide d'une expression lambda.

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

Spécifie quels sont les sous-objets à récupérer lorsqu'une requête est soumise pour un objet de type T.

LoadWith(LambdaExpression)

Récupère des données spécifiées associées à la cible principale à l'aide d'une expression 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)

Paramètres

expression
LambdaExpression

Expression lambda identifiant les éléments associés.

Exemples

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

Remarques

Dans l'exemple suivant, toutes les Orders de tous les Customers dont la ville est London sont récupérés une fois la requête exécutée. En conséquence, le fait d'accéder par la suite à la propriété Orders sur un objet Customer ne déclenche pas de nouvelle requête de la base de données.

S’applique à

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

Spécifie quels sont les sous-objets à récupérer lorsqu'une requête est soumise pour un objet de type 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)))

Paramètres de type

T

Type sur lequel est envoyée la requête.

Si ce type est non mappé, une exception est levée.

Paramètres

expression
Expression<Func<T,Object>>

Identifie le champ ou la propriété à récupérer.

Si l'expression n'identifie pas un champ ou une propriété qui représente une relation un-à-un ou un-à-plusieurs, une exception est levée.

Exemples

Dans l'exemple suivant, toutes les Orders de tous les Customers dont la ville est London sont récupérés une fois la requête exécutée. En conséquence, le fait d'accéder par la suite à la propriété Orders sur un objet Customer ne déclenche pas de nouvelle requête de la base de données.

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

Remarques

Vous ne pouvez pas spécifier le chargement de deux niveaux de relations (par exemple, Orders.OrderDetails). Dans ces scénarios, vous devez spécifier deux méthodes distinctes LoadWith .

Pour éviter le cyclisme, consultez la section Remarques dans DataLoadOptions.

S’applique à