DataLoadOptions.LoadWith Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přetížení
LoadWith(LambdaExpression) |
Načte zadaná data související s hlavním cílem pomocí výrazu lambda. |
LoadWith<T>(Expression<Func<T,Object>>) |
Určuje, které dílčí objekty se mají načíst při odeslání dotazu pro objekt typu T. |
LoadWith(LambdaExpression)
Načte zadaná data související s hlavním cílem pomocí výrazu 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
Výraz lambda, který identifikuje související materiál.
Příklady
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
Poznámky
V následujícím příkladu se při spuštění dotazu načtou Orders
Customers
všechny hodnoty pro všechny, kteří se nacházejí v Londýně. V důsledku toho následný přístup k Orders
vlastnosti objektu Customer
neaktivuje nový databázový dotaz.
Platí pro
LoadWith<T>(Expression<Func<T,Object>>)
Určuje, které dílčí objekty se mají načíst při odeslání dotazu pro objekt 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, na který se dotazuje.
Pokud je tento typ nenamapovaný, je vyvolána výjimka.
Parametry
- expression
- Expression<Func<T,Object>>
Určuje pole nebo vlastnost, které mají být načteny.
Pokud výraz neidentifikuje pole nebo vlastnost, které představují relaci 1:1 nebo 1:N, vyvolá se výjimka.
Příklady
V následujícím příkladu se při spuštění dotazu načtou Orders
Customers
všechny hodnoty pro všechny, kteří se nacházejí v Londýně. V důsledku toho následný přístup k Orders
vlastnosti objektu Customer
neaktivuje nový databázový dotaz.
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
Poznámky
Nelze zadat načítání dvou úrovní relací (například Orders.OrderDetails
). V těchto scénářích musíte zadat dvě samostatné LoadWith metody.
Pokud se chcete vyhnout cyklistikě, přečtěte si část Poznámky v DataLoadOptions.