DataLoadOptions Kelas

Definisi

Menyediakan pemuatan dan pemfilteran data terkait segera.

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

Contoh

Saat Anda mengambil Customers dari database sampel Northwind, Anda dapat menggunakan DataLoadOptions untuk menentukan yang Orders juga akan diambil. Anda bahkan dapat menentukan subset Orders mana yang akan diambil.

Keterangan

Kelas DataLoadOptions ini menyediakan pemuatan dan pemfilteran data terkait segera.

Saat Anda meminta sebuah objek, Anda sebenarnya hanya mengambil objek yang diminta. Objek terkait tidak diambil secara otomatis secara bersamaan. Untuk informasi lebih lanjut, lihat Memanggil Data Antara Relasi.

Kelas ini DataLoadOptions menyediakan dua metode untuk mencapai pemuatan segera data terkait yang ditentukan. Metode ini LoadWith memungkinkan pemuatan data segera yang terkait dengan target utama. Metode ini AssociateWith memungkinkan pemfilteran objek terkait.

Aturan

Pertimbangkan aturan berikut mengenai DataLoadOptions penggunaan:

Menangani siklus

LoadWith dan AssociateWith direktif tidak boleh membuat siklus. Berikut ini mewakili contoh grafik tersebut:

  • Contoh 1: Rekursif mandiri

    • dlo.LoadWith<Employee>(e => e.Reports);
  • Contoh 2: Back-pointer

    • dlo.LoadWith <Customer>(c => C.Orders);
    • dlo.LoadWith <Order>(o => o.Customer);
  • Contoh 3: Siklus yang lebih panjang

    Meskipun ini tidak boleh terjadi dalam model yang dinormalisasi dengan baik, itu mungkin.

    • dlo.LoadWith <A>(a => a.Bs);
    • dlo.LoadWith <B>(b => b.Cs);
    • dlo.LoadWith <C>(c => c.As);
  • Contoh 4: SubKueri rekursif mandiri

    • dlo.AssociateWith<A>(a=>a.As.Where(a=>a.Id=33));
  • Contoh 5: Subkueri rekursif yang lebih panjang

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

Aturan umum berikut membantu Anda memahami apa yang terjadi dalam skenario ini:

  • LoadWith: Setiap panggilan untuk LoadWith memeriksa apakah siklus telah dimasukkan ke dalam grafik. Jika ada, seperti dalam Contoh 1, 2, dan 3, pengecualian akan dilemparkan.

  • AssociateWith: Pada waktu proses, mesin tidak menerapkan klausa SubQuery yang ada ke hubungan di dalam ekspresi.

    • Dalam Contoh 4, Where klausul dijalankan terhadap semua A, bukan hanya yang difilter oleh ekspresi SubQuery itu sendiri (karena itu akan rekursif).
    • Dalam Contoh 5, klausa pertama Where diterapkan ke semua Bs, meskipun ada subkueri pada B. Klausa kedua Where diterapkan ke semua Ameskipun ada subkueri pada A.

Konstruktor

Nama Deskripsi
DataLoadOptions()

Menginisialisasi instans baru dari kelas DataLoadOptions.

Metode

Nama Deskripsi
AssociateWith(LambdaExpression)

Memfilter objek yang diambil untuk hubungan tertentu.

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

Memfilter objek yang diambil untuk hubungan tertentu.

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan Type instans saat ini.

(Diperoleh dari Object)
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.

MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(Diperoleh dari Object)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Berlaku untuk