Hello all,
I use the latest stable version of dotConnect for Oracle.
I need to dynamically create LINQ queries through Expressions. So, i start with the simple query :
IQueryable query =
from objCustomerInfo in context.CustomerInfos
where objCustomerInfo.Datt == null
select objCustomerInfo;
I need to apply a Where clause dynamically using the following expressions :
System.Linq.Expressions.Expression> predicate = b => b.UdfId == udfId;
System.Linq.Expressions.Expression> predicate2 = a => (context.UdfsValues.Where(predicate).Select(b => b.RefId)).Contains(a.Id)
Finally i use the Expression like that:
var result = query.Where(predicate2).ToList();
When the ToList() is called, i get the following exception:
Exception message: {"Unsupported overload used for query operator 'Where'."}
Stack Trace: at Devart.Data.Linq.Provider.Query.bk.b(MethodCallExpression A_0)
at Devart.Data.Linq.Provider.Query.bk.j(Expression A_0)
at Devart.Data.Linq.Provider.Query.bk.d(Expression A_0, Expression A_1)
at Devart.Data.Linq.Provider.Query.bk.b(MethodCallExpression A_0)
at Devart.Data.Linq.Provider.Query.bk.j(Expression A_0)
at Devart.Data.Linq.Provider.Query.bk.i(Expression A_0, Expression A_1)
...................................
It's just a simple variable usage. If i don't use the variables, and i set the lambda expressions directly, everything works ok.