Is it possible to use a dynamic Linq Expression inside a Query Expression?
Something like this:
from obj1 in ObjectSet1
let res = ObjectSet2.Where(* SomeExpression *)
where ...
select ...
I’m trying to build Expression.Lambda<Func<TSource, bool>> Expression as for SomeExpression.
- Is it possible to to use dynamic Linq Expression within the Expression Query or do I need to build the whole Expression tree from scratch?
- How can I, if any, use obj1 when I’m building SomeExpression?
Note: I’m using Entity Framework, I can’t use SomeExpression.Compile() within the expression tree.
It’s not only possible, it’s normal. Large expression trees can be generated from smaller trees (this is what LINQ does). You only have to pass in an
Expression<Func<TSource, bool>>toWhere().You can see how in my reply to this other thread here – replacing operator in Where clause Lambda with a parameter . The interesting part is in the
MakeWhereLambdamethod.