DataLoadOptions Sınıf

Tanım

İlgili verilerin hemen yüklenmesini ve filtrelenmesi için sağlar.

public ref class DataLoadOptions sealed
public sealed class DataLoadOptions
type DataLoadOptions = class
Public NotInheritable Class DataLoadOptions
Devralma
DataLoadOptions

Örnekler

Northwind örnek veritabanından aldığınızdaCustomers, bunun da alınacağını belirtmek Orders için kullanabilirsinizDataLoadOptions. Hangi alt kümesinin Orders alınacağını bile belirtebilirsiniz.

Açıklamalar

sınıfı, DataLoadOptions ilgili verilerin hemen yüklenmesini ve filtrelenmesi için sağlar.

Bir nesneyi sorguladığınızda, aslında yalnızca istediğiniz nesneyi alırsınız. İlgili nesneler aynı anda otomatik olarak getirilmiyor. Daha fazla bilgi için bkz. İlişkiler Arasında Sorgulama.

sınıfı, DataLoadOptions belirtilen ilgili verilerin hemen yüklenmesini sağlamak için iki yöntem sağlar. yöntemi, LoadWith ana hedefle ilgili verilerin hemen yüklenmesini sağlar. yöntemi, AssociateWith ilgili nesnelerin filtrelenmesine olanak tanır.

Kurallar

Kullanımla ilgili DataLoadOptions olarak aşağıdaki kuralları göz önünde bulundurun:

Döngüleri işleme

LoadWith ve AssociateWith yönergeleri döngü oluşturmamalıdır. Aşağıdakiler bu tür grafiklerin örneklerini temsil eder:

  • Örnek 1: Özyinelemeli

    • dlo.LoadWith<Employee>(e => e.Reports);
  • Örnek 2: Arka işaretçiler

    • dlo.LoadWith <Customer>(c => C.Orders);
    • dlo.LoadWith <Order>(o => o.Customer);
  • Örnek 3: Daha uzun döngüler

    Bu, iyi normalleştirilmiş bir modelde oluşmamalıdır, ancak mümkündür.

    • dlo.LoadWith <A>(a => a.Bs);
    • dlo.LoadWith <B>(b => b.Cs);
    • dlo.LoadWith <C>(c => c.As);
  • Örnek 4: Özyinelemeli alt Sorgular

    • dlo.AssociateWith<A>(a=>a.As.Where(a=>a.Id=33));
  • Örnek 5: Daha uzun özyinelemeli alt sorgular

    • dlo.AssociateWith<A>(a=>a.Bs.Where(b=>b.Id==3));
    • dlo.AssociateWith<B>(b=>b.As.Where(a=>a.Id==3));

Aşağıdaki genel kurallar, bu senaryolarda neler olduğunu anlamanıza yardımcı olur:

  • LoadWith: Döngülerin grafta tanıtılıp kullanılmadığını denetlemeye yönelik her çağrı LoadWith . Örnek 1, 2 ve 3'te olduğu gibi varsa bir özel durum oluşturulur.

  • AssociateWith: Çalışma zamanında altyapı, ifadenin içindeki ilişkiye mevcut SubQuery yan tümcelerini uygulamaz.

    • Örnek 4'te yan tümcesi yalnızca Where SubQuery ifadesinin kendisi tarafından alt filtrelenenlere değil tümüne Akarşı yürütülür (özyinelemeli olacağından).
    • Örnek 5'te, ilk Where yan tümcesi üzerinde alt sorgular olsa bile tüm Bs'lere Buygulanır. İkinci Where yan tümcesi, üzerinde Aalt sorgular olsa bile tüm As'lere uygulanır.

Oluşturucular

Name Description
DataLoadOptions()

DataLoadOptions sınıfının yeni bir örneğini başlatır.

Yöntemler

Name Description
AssociateWith(LambdaExpression)

Belirli bir ilişki için alınan nesneleri filtreler.

AssociateWith<T>(Expression<Func<T,Object>>)

Belirli bir ilişki için alınan nesneleri filtreler.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Geçerli örneğin Type alır.

(Devralındığı yer: Object)
LoadWith(LambdaExpression)

Bir 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.

MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden bir dize döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır