我正在使用实体框架,空间数据和映射建筑物的MsSQL 2012编写MVC应用程序。我想要实现的目标非常简单。
人员点击地图上的建筑物并获取建筑物详细信息。
所以我写了以下函数。
public BuildingPart GetByPoint(double x, double y)
{
DbGeometry point = DbGeometry.PointFromText("POINT(" + x + " " + y + ")", 2100);
BuildingPart result = _context.BuildingPart
.Where(a => a.BuildingPartPolygonGeometry.geometry.Intersects(point))
.Include(a => a.Storey)
.Include(a => a.RoofSurface.Select(c => c.RoofSurfacePolygon)).SingleOrDefault();
return result;
}
问题在于,尽管此函数始终在应用程序中返回null,但无论用户单击何处。如果我确实接受了此函数生成的查询并在MSSQL Management Studio上执行它,则查询会返回结果;
在其正文中没有空间查询的任何其他函数......有效。
我已经尝试了很多东西,其中包括在项目中放置Microsoft.SqlServer.Types.dll,在bin文件夹中放置SqlServerSpatial.dll和SqlServerSpatial110.dll。
我没有遇到特别错误的事实令我担心。如果有人能发光,我们将不胜感激。
先谢谢