我在一个存储为'float'
的SQL DB中有lat和long我正在尝试下面的lat& lng是C#double
var yourLocation = SqlGeography.Point(lat, lng, 4326);
MyConn conn = new MyConn();
var query = from p in conn.Locations
let distance = SqlGeography
.Point(p.Latitude, p.Longitude, 4326)
.STDistance(yourLocation)
.Value
where distance <= 50
select p;
return query.Distinct().ToList();
我得到的是以下错误
LINQ to Entities无法识别方法'System.Data.SqlTypes.SqlDouble STDistance(Microsoft.SqlServer.Types.SqlGeography)'方法,并且此方法无法转换为商店表达式。
对此有何看法?
答案 0 :(得分:0)
答案 1 :(得分:0)
回答这个问题为时已晚,但需要社区帮助。出现此问题是因为项目中未引用 Microsoft.SqlServer.Types 。只需右键单击引用并选择添加引用对话框,就会出现选择程序集选项卡并搜索此程序集并选择。问题已解决。