1
我試圖用實體框架執行故事查詢。實體框架。 ExecuteStoreQuery錯誤將數據類型varchar轉換爲實數
我一直在嘗試這個年齡。我傳入的數據類型以雙精度開始。然後我發現在SQL中是真實的,所以我轉換爲單一。
(半徑是一個整數)
但我得到這個錯誤。
將數據類型varchar轉換爲實際時出錯。
var query = context.ExecuteStoreQuery<SearchIndex>("select * FROM dbo.ItemsWidthinRadiusMilesSearchIndex('{0}','{1}','{2}')", Convert.ToSingle(geo.Latitude), Convert.ToSingle(geo.Longitude), radius).ToList();
任何人都可以幫忙嗎?
編輯,問題仍然使用此語法發生:
SqlParameter lat = new SqlParameter() { ParameterName = "p1", Value = Convert.ToSingle(geo.Latitude) };
SqlParameter lng = new SqlParameter() { ParameterName = "p2", Value = Convert.ToSingle(geo.Longitude) };
SqlParameter radiusParam = new SqlParameter() { ParameterName = "p3", Value = radius, DbType = System.Data.DbType.Int32 };
var paramsToPass = new object[] {lat,lng,radiusParam};
var query = context.ExecuteStoreQuery<SearchIndex>("select * FROM dbo.ItemsWidthinRadiusMilesSearchIndex('@p1','@p2','@p3')",paramsToPass).ToList();
重寫你有五行代碼。三個做轉換,一個建立SQL字符串和一個執行它。之後,我敢打賭你可以自己解決問題。 – 2012-08-19 01:18:52
很酷,我之前就是這麼做的,只是改用了這種方法來嘗試在這裏發佈。將編輯。 – 2012-08-19 01:58:36
我應該設置更多的SqlParamater選項/參數嗎? – 2012-08-19 02:02:24