from this link i can dynamically create an Expression < Func< T, bool>> predicate
this code can dynamically create s=>s.Id == 1
ParameterExpression argParam = Expression.Parameter(typeof(User), "s");
var propertyExp = Expression.Property(parameterExp, "Id");
var constExp = Expression.Constant(1);
var body = Expression.Equal(propertyExp, constExp);
var lambda = Expression.Lambda<Func<User, bool>>(body, parameterExp);
but how do i create Expression < Func< T1,T2,bool>> and Expression < Func < T1,T2,T3,bool>>
how dynamically create like this: (a,b)=> a.Id== 1 && b.Name == "name"