2014-03-12 63 views
2

我使用System.Linq.Dynamic庫DynamicQuery作爲使用EF .NET Framework 4.0嘗試將Nullable(int?)轉換爲類似於:Linq.Dynamic拋出異常試圖將可空int轉換爲字符串

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

如何讓Expression.Call工作並返回字符串等效的Nullable列?

感謝, 約翰


事情我已經嘗試:

  1. 我試圖發送Convert.ToString(列名)作爲查詢的一部分:

System.ArgumentException:類型的表達式'System.Nullable arguments) System.Linq.Expressions.Expression.Call(表達式實例,MethodInfo方法,IEnumerable`1參數) 在System.Linq.Expressions.Expression.Call(表達式實例,MethodInfo方法,Expression []參數) at System.Linq .Dynamic.ExpressionParser.ParseMemberAccess在C(類型類型,表達式實例):\項目\ DynamicQuery.cs:線3461

  1. 我已經使用(COLUMNNAME)的ToString(試過)和收到以下:

System.Linq.Dynamic.ParseException:類型'Int32?'上的方法?無法訪問 在System.Linq.Dynamic.ExpressionParser.ParseMemberAccess(類型類型,例如表達)在C:\項目\ DynamicQuery.cs:行3453

+0

你能解決這個問題嗎? – FabioG

回答

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

在查詢字符串中不起作用。類型'DynamicClass1'中不存在屬性或字段'int'。 – Cynicszm

0

嘗試使用

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

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

請解釋你的答案 – unicorn2

相關問題