DataLoadOptions.LoadWith Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Przeciążenia
LoadWith(LambdaExpression) |
Pobiera określone dane powiązane z głównym celem przy użyciu wyrażenia lambda. |
LoadWith<T>(Expression<Func<T,Object>>) |
Określa, które obiekty podrzędne mają być pobierane po przesłaniu zapytania dla obiektu typu T. |
LoadWith(LambdaExpression)
Pobiera określone dane powiązane z głównym celem przy użyciu wyrażenia 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)
Parametry
- expression
- LambdaExpression
Wyrażenie lambda identyfikujące powiązany materiał.
Przykłady
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
Uwagi
W poniższym przykładzie wszystkie Orders
wartości dla wszystkich Customers
, którzy znajdują się w Londynie, są pobierane podczas wykonywania zapytania. W związku z tym kolejny dostęp do Orders
właściwości w Customer
obiekcie nie wyzwala nowego zapytania bazy danych.
Dotyczy
LoadWith<T>(Expression<Func<T,Object>>)
Określa, które obiekty podrzędne mają być pobierane po przesłaniu zapytania dla obiektu typu 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)))
Parametry typu
- T
Typ, względem którego jest odpytywane.
Jeśli ten typ jest niezamapowany, zgłaszany jest wyjątek.
Parametry
- expression
- Expression<Func<T,Object>>
Identyfikuje pole lub właściwość do pobrania.
Jeśli wyrażenie nie identyfikuje pola lub właściwości reprezentującej relację jeden do jednego lub jeden do wielu, zgłaszany jest wyjątek.
Przykłady
W poniższym przykładzie wszystkie Orders
wartości dla wszystkich Customers
, którzy znajdują się w Londynie, są pobierane podczas wykonywania zapytania. W związku z tym kolejny dostęp do Orders
właściwości w Customer
obiekcie nie wyzwala nowego zapytania bazy danych.
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
Uwagi
Nie można określić ładowania dwóch poziomów relacji (na przykład Orders.OrderDetails
). W tych scenariuszach należy określić dwie oddzielne LoadWith metody.
Aby uniknąć jazdy na rowerze, zobacz sekcję Uwagi w temacie DataLoadOptions.