Pertanyaan Menggabungkan Func ekspresi [duplikat]


Kemungkinan Duplikat:
Menggabungkan dua ekspresi (Ekspresi <Func <T, bool >>) 

Saya memiliki metode mengambil satu Expression<Func<bool>> parameter

void MethodOne(Expression<Func<bool>> expression)

Saya punya beberapa contoh Expression<Func<bool>>. Bagaimana cara menggabungkan ekspresi ini secara dinamis menjadi satu Expression<Func<bool>> menggunakan Expression.OrElse (yaitu membangun pohon ekspresi)?

Misalnya jika saya memiliki dua ekspresi seperti

() => objectA.PropertyOneIsSet

dan

() => objectB.PropertyTwoIsSet

Saya ingin hasil akhirnya menjadi:

() => objectA.PropertyOneIsSet || objectB.PropertyTwoIsSet

jadi saya bisa meneruskan ini ke metode saya di atas.


4
2017-11-23 14:50


asal


Jawaban:


Anda dapat membuat ExpressionVisitor untuk menggabungkan kueri. Lihat blog msdn ini untuk info lebih lanjut: Menggabungkan Predikat (Jawaban 3). Dia berbicara tentang EF, tetapi Anda dapat menggunakannya dalam kasus Anda


7
2017-11-23 15:51



Anda bisa menggunakan ekspresi.Any (x => x.CallMethod) untuk mencapai tujuan ini.


3
2017-11-23 14:56