我正在尝试使用Entity Framework执行故事查询。
我已经尝试了很多年了。我传入的数据类型以double开头。然后我发现SQL中的真实单一,所以我转换为单。
(radius是一个int)
但是我收到了这个错误。
将数据类型varchar转换为real。时出错。
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();
答案 0 :(得分:1)
从参数中删除引用。例如@ p1而不是'@ p1' - aKzenT