Linq.动态抛出异常,试图将可空int转换为字符串



我正在使用System.Linq.Dynamic库DynamicQuery作为解决方案的一部分,在。net Framework 4.0上使用EF来尝试将可空值(int?)转换为字符串,类似于:

query= "new(Convert.ToString(columnName) as stringColumn)";
IQueryable result = queryable.Select(query, parameters[]);

我如何得到表达式。调用工作,并返回一个空列的字符串等效?

谢谢,约翰。


我尝试过的事情:

  1. 我已经尝试发送转换。tostring (columnName)作为查询的一部分:

系统。ArgumentException:系统类型的表达式。可空的1[System.Int32]' cannot be used for parameter of type 'System.Object' of method 'System.String ToString(System.Object)' at System.Linq.Expressions.Expression.ValidateOneArgument(MethodBase method, ExpressionType nodeKind, Expression arg, ParameterInfo pi) at System.Linq.Expressions.Expression.ValidateArgumentTypes(MethodBase method, ExpressionType nodeKind, ReadOnlyCollection 1&参数)在System.Linq.Expressions.Expression。调用(表达式实例,MethodInfo方法,IEnumerable ' 1个参数)在System.Linq.Expressions.Expression。调用(表达式实例,MethodInfo方法,表达式[]参数)在System.Linq.Dynamic.ExpressionParser。ParseMemberAccess(类型类型,表达式实例)在c:ProjectsDynamicQuery.cs:line 3461

  1. 我已经尝试使用(columnName).toString()并接收以下内容:

System.Linq.Dynamic。ParseException: Int32类型的方法?'是不可访问的在System.Linq.Dynamic.ExpressionParser。ParseMemberAccess(类型类型,表达式实例)在c:ProjectsDynamicQuery.cs:line 3453

query = "new(Convert.ToString((int?)columnName))";

尝试使用

query = "new(Convert.ToString(Int32(columnName)))"

query = "new((Int32(columnName)).ToString())"

相关内容

  • 没有找到相关文章

最新更新