DataLoadOptions.LoadWith Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Överlagringar
| Name | Description |
|---|---|
| LoadWith(LambdaExpression) |
Hämtar angivna data som är relaterade till huvudmålet med hjälp av ett lambda-uttryck. |
| LoadWith<T>(Expression<Func<T,Object>>) |
Anger vilka underobjekt som ska hämtas när en fråga skickas för ett objekt av typen T. |
LoadWith(LambdaExpression)
Hämtar angivna data som är relaterade till huvudmålet med hjälp av ett lambda-uttryck.
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)
Parametrar
- expression
- LambdaExpression
Ett lambda-uttryck som identifierar det relaterade materialet.
Exempel
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
Kommentarer
I följande exempel hämtas alla Orders för alla Customers som finns i London när frågan körs. Därför utlöser efterföljande åtkomst till Orders egenskapen på ett Customer objekt inte en ny databasfråga.
Gäller för
LoadWith<T>(Expression<Func<T,Object>>)
Anger vilka underobjekt som ska hämtas när en fråga skickas för ett objekt av typen 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)))
Typparametrar
- T
Typ som efterfrågas.
Om den här typen är avmappad genereras ett undantag.
Parametrar
- expression
- Expression<Func<T,Object>>
Identifierar det fält eller den egenskap som ska hämtas.
Om uttrycket inte identifierar ett fält eller en egenskap som representerar en en-till-en- eller en-till-många-relation genereras ett undantag.
Exempel
I följande exempel hämtas alla Orders för alla Customers som finns i London när frågan körs. Därför utlöser efterföljande åtkomst till Orders egenskapen på ett Customer objekt inte en ny databasfråga.
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
Kommentarer
Du kan inte ange inläsning av två nivåer av relationer (till exempel Orders.OrderDetails). I dessa scenarier måste du ange två separata LoadWith metoder.
Information om hur du undviker cykling finns i avsnittet Anmärkningar i DataLoadOptions.