实体框架中的空间连接

时间:2011-10-27 20:33:23

标签: sql sql-server linq entity-framework spatial

我想使用dbgeography的“Intersects”方法在LINQ中编写连接语句(我使用的是2011年6月的EF CTP)。问题是如果我写这样的东西:

var joinQuery = from spQ in spatialTableQuery
                    join mnQ in MainQuery
                    on spQ.Polygon.Intersects(mnQ.PointGeography) equals 1

我收到以下错误:

  

名称'mnQ'不在'equals'左侧的范围内。考虑   交换'equals'两侧的表达式。

在SQL中,我编写了类似的查询,因此我知道SQL支持它:

SELECT  * FROM   Address a 
INNER JOIN  SPATIALTABLE b
WITH(INDEX(geog_sidx))
ON b.geom.STIntersects(a.PointGeography) = 1

1 个答案:

答案 0 :(得分:1)

尝试这样的事情:

var joinQuery = 
   from spQ in spatialTableQuery
   from mnQ in MainQuery
   where spQ.Polygon.Intersects(mnQ.PointGeography) = 1