Combinando funcional expresiones

c# expression-trees

Pregunta

Posible duplicado:
Combinando dos expresiones (Expresión <Func <T, bool >>)

Tengo un método que toma un solo parámetro de Expression<Func<bool>>

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

Tengo varias instancias de Expression<Func<bool>> . ¿Cómo combino dinámicamente estas expresiones en una sola Expression<Func<bool>> usando Expression.OrElse (es decir, construyendo un árbol de expresiones)?

Por ejemplo, si tengo dos expresiones como

() => objectA.PropertyOneIsSet

y

() => objectB.PropertyTwoIsSet

Quiero que el resultado final sea:

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

así que puedo pasar esto a mi método anterior.

Respuesta aceptada

Puede crear ExpressionVisitor para combinar consultas. Consulte este blog de msdn para obtener más información: Combinación de predicados (Respuesta 3). Habla de EF, pero puedes usarlo en tu caso.


Respuesta popular

Podrías usar expresiones. Cualquier (x => x.CallMethod) para lograr este objetivo.



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow