query = from i in _db.ILV
join p in _db.PC on
i.PostCode equals p.PostCode
where (!string.IsNullOrEmpty(rng)) ? STGeomFromText(i.Point).STDistance(q.Point) <= rng : true已声明使用System.Spatial。有人能告诉我做这件事的正确方法吗?
发布于 2014-03-05 06:52:05
看起来您正处于数据上下文中。在这种情况下,您应该使用System.Data.Spatial,而不能直接调用该函数。
http://msdn.microsoft.com/en-us/data/hh859721.aspx
有关对实体使用空间几何的其他信息,请参阅http://blogs.msdn.com/b/efdesign/archive/2011/05/04/spatial-types-in-the-entity-framework.aspx
发布于 2018-12-07 20:27:55
现在可以在内存中或使用EF Core2.2并使用Nuget包Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite来实现这一点
using NetTopologySuite.Geometries;
using System.Linq;
var here = new Point(53.791299, -1.547772) { SRID = 104001 };
var places = Data.Places.Where(p => p.Location.Distance(here) < 100);有关更多信息,请参阅EF Core 2.2 Release注释。
https://stackoverflow.com/questions/22184714
复制相似问题