Gunakan pepohon ungkapan untuk memilih atribut jenis tanpa nama LINQ secara dinamik
Adalah mungkin untuk menggunakan pepohon ekspresi untuk membina pertanyaan LINQ yang kompleks untuk memilih jenis tanpa nama secara dinamik. Walaupun pertanyaan yang memilih satu atribut mudah dijana, memilih berbilang atribut dalam jenis tanpa nama memerlukan pendekatan yang berbeza.
Untuk melakukan ini, jenis tanpa nama boleh ditakrifkan secara dinamik pada masa jalan menggunakan kelas pelepasan reflektif dan pembantu. Berikut ialah contoh:
Kaedah sambungan SelectDynamic:
<code>public static IQueryable SelectDynamic(this IQueryable source, IEnumerable<string> fieldNames) { ... // 实现细节 }</code>
Kelas tambahan LinqRuntimeTypeBuilder:
<code>public static class LinqRuntimeTypeBuilder { ... // 实现细节 }</code>
Pendekatan ini membolehkan penciptaan pilihan dinamik yang kompleks tanpa sokongan Intellisense, yang berguna untuk kawalan data terikat lewat.
Contoh berikut menjana pertanyaan yang memilih sifat Nama dan Populasi daripada entiti Negara di mana Bandar bersamaan dengan "London":
<code>var v = Countries.Where(c => c.City == "London") .SelectDynamic(new[] { "Name", "Population" });</code>
Akibatnya, pembolehubah v akan mengandungi jenis dinamik dengan sifat Nama dan Populasi.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memilih Sifat Jenis Tanpa Nama secara Dinamik dalam LINQ Menggunakan Pokok Ekspresi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!