1

我正在尝试使用实体框架执行故事查询。

我已经尝试了很多年了。我传入的数据类型以 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();
4

1 回答 1

1

从参数中删除引号。例如 @p1 而不是 '@p1' – aKzenT

于 2012-09-14T12:27:53.940 回答