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