DataLoadOptions.LoadWith Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Overload
LoadWith(LambdaExpression) |
Mengambil data tertentu yang terkait dengan target utama dengan menggunakan ekspresi lambda. |
LoadWith<T>(Expression<Func<T,Object>>) |
Menentukan sub-objek mana yang akan diambil saat kueri dikirimkan untuk objek jenis T. |
LoadWith(LambdaExpression)
Mengambil data tertentu yang terkait dengan target utama dengan menggunakan ekspresi 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)
Parameter
- expression
- LambdaExpression
Ekspresi lambda yang mengidentifikasi materi terkait.
Contoh
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
Keterangan
Dalam contoh berikut, semua Orders
untuk semua Customers
yang berada di London diambil saat kueri dijalankan. Akibatnya, akses berturut-turut ke properti Orders
pada objek Customer
tidak memicu kueri database baru.
Berlaku untuk
LoadWith<T>(Expression<Func<T,Object>>)
Menentukan sub-objek mana yang akan diambil saat kueri dikirimkan untuk objek jenis 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)))
Jenis parameter
- T
Jenis yang dikueri.
Jika jenis ini tidak dipetakan, pengecualian akan dilemparkan.
Parameter
- expression
- Expression<Func<T,Object>>
Mengidentifikasi bidang atau properti yang akan diambil.
Jika ekspresi tidak mengidentifikasi bidang atau properti yang mewakili hubungan satu-ke-satu atau satu-ke-banyak, pengecualian akan dilemparkan.
Contoh
Dalam contoh berikut, semua Orders
untuk semua Customers
yang berada di London diambil saat kueri dijalankan. Akibatnya, akses berturut-turut ke properti Orders
pada objek Customer
tidak memicu kueri database baru.
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
Keterangan
Anda tidak dapat menentukan pemuatan dua tingkat hubungan (misalnya, Orders.OrderDetails
). Dalam skenario ini, Anda harus menentukan dua metode terpisah LoadWith .
Untuk menghindari bersepeda, lihat bagian Keterangan di DataLoadOptions.