Consider a class that can be used as a member of multiple other classes:
class Customer {
    public string FirstName {get;set;}
    public string LastName {get;         
        
Unfortunately, C# does not currently provide a way to compose expressions from Expression objects. You have to use expression trees, which is quite a bit longer:
static Expression> CheckExpr(Expression> conv, string first, string last) {
    var arg = Expression.Parameter(typeof(T));
    var get = Expression.Invoke(conv, arg);
    return Expression.Lambda>(
        Expression.MakeBinary(
            ExpressionType.AndAlso
        ,   Expression.MakeBinary(
                ExpressionType.Equal
            ,   Expression.Property(get, nameof(Customer.FirstName))
            ,   Expression.Constant(first)
            )
        ,   Expression.MakeBinary(
                ExpressionType.Equal
            ,   Expression.Property(get, nameof(Customer.LastName))
            ,   Expression.Constant(last)
            )
        )
    ,   arg
    );
}