我正在尝试使用实体框架执行故事查询。
我已经尝试了很多年了。我传入的数据类型以 double 开头。然后我发现sql中的real是single,所以我转换为single。
(半径是一个整数)
但我得到这个错误。
将数据类型 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();