实体框架6.1在空间查询上返回null(使用MsSQL)

时间:2014-06-30 10:50:29

标签: sql-server entity-framework spatial

我正在使用实体框架,空间数据和映射建筑物的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。

我没有遇到特别错误的事实令我担心。如果有人能发光,我们将不胜感激。

先谢谢

0 个答案:

没有答案