Soalan:
Bolehkah kita membina pertanyaan LINQ secara dinamik tanpa mengubah kod sumber? Dalam senario ini, parameter pertanyaan akan diekstrak daripada konfigurasi XML yang disimpan dalam pangkalan data.
Contoh:
var result = from i in someObj where name = 'Bob'
Pertanyaan Dinamik Penjanaan:
Jawapan:
Pokok ungkapan menawarkan penyelesaian untuk penjanaan pertanyaan dinamik ini. Berikut ialah contoh kod:
var param = Expression.Parameter(typeof(SomeObject), "p"); var exp = Expression.Lambda<Func<SomeObject, bool>>( Expression.Equal( Expression.Property(param, "Name"), Expression.Constant("Bob") ), param ); var query = someObj.Where(exp);
Penjelasan:
Nota: Pendekatan ini lebih kompleks tetapi memberikan fleksibiliti untuk situasi di mana pembinaan pertanyaan dinamik adalah penting daripada XML konfigurasi.
Atas ialah kandungan terperinci Bolehkah Pertanyaan LINQ Dinamik Dibina daripada Konfigurasi XML?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!