DataLoadOptions.LoadWith Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Aşırı Yüklemeler
LoadWith(LambdaExpression) |
Lambda ifadesi kullanarak ana hedefle ilgili belirtilen verileri alır. |
LoadWith<T>(Expression<Func<T,Object>>) |
T türündeki bir nesne için sorgu gönderildiğinde alınacak alt nesneleri belirtir. |
LoadWith(LambdaExpression)
Lambda ifadesi kullanarak ana hedefle ilgili belirtilen verileri alır.
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)
Parametreler
- expression
- LambdaExpression
İlgili malzemeyi tanımlayan bir lambda ifadesi.
Örnekler
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
Açıklamalar
Aşağıdaki örnekte, Orders
sorgu yürütülürken Londra'da bulunan tüm Customers
kişilerin tümü alınır. Sonuç olarak, bir Customer
nesnedeki Orders
özelliğe ardışık erişim yeni bir veritabanı sorgusunu tetiklemez.
Şunlara uygulanır
LoadWith<T>(Expression<Func<T,Object>>)
T türündeki bir nesne için sorgu gönderildiğinde alınacak alt nesneleri belirtir.
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)))
Tür Parametreleri
- T
Sorgulanan tür.
Bu tür eşlenmemişse bir özel durum oluşturulur.
Parametreler
- expression
- Expression<Func<T,Object>>
Alınacak alanı veya özelliği tanımlar.
İfade bire bir veya bire çok ilişkisini temsil eden bir alanı veya özelliği tanımlamıyorsa, bir özel durum oluşturulur.
Örnekler
Aşağıdaki örnekte, Orders
sorgu yürütülürken Londra'da bulunan tüm Customers
kişilerin tümü alınır. Sonuç olarak, bir Customer
nesnedeki Orders
özelliğe ardışık erişim yeni bir veritabanı sorgusunu tetiklemez.
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
Açıklamalar
İki ilişki düzeyinin yüklenmesini belirtemezsiniz (örneğin, Orders.OrderDetails
). Bu senaryolarda iki ayrı LoadWith yöntem belirtmeniz gerekir.
Bisiklete binmemek için içindeki Açıklamalar bölümüne DataLoadOptionsbakın.