0
我試圖做的查詢上投,但它扔我一個錯誤500
http://source/service/odata.svc?$filter=(cast(Value,'Edm.Int32') eq 1)
凡列「價值」是一個Edm.String
請注意,我用的OData
我試圖做的查詢上投,但它扔我一個錯誤500
http://source/service/odata.svc?$filter=(cast(Value,'Edm.Int32') eq 1)
凡列「價值」是一個Edm.String
請注意,我用的OData
的V3我想你可能會得到錯誤消息像服務:
No coercion operator is defined between types 'System.String' and 'System.Nullable`1[System.Int32]'.
這是由LINQ的公司的E拋出xpression.Convert,它會嘗試將字符串值轉換爲int值。
這是因爲數字類型只支持轉換爲數字類型。 (這是在v4 spec 5.1.1.4.29演員中明確提出的)。
另請注意,其他強類型語言也不允許直接從字符串中將'CAST'轉換爲int。因此,下面的代碼不會編譯:
string a = "3";
int b = (int) a;
一個更好的解決方案可以在此處手動鑄造常量:
http://source/service/odata.svc?$filter=Value eq '1'