我想使用 dbgeography 的“Intersects”方法在 LINQ 中编写连接语句(我使用的是 EF June 2011 CTP)。问题是如果我写这样的东西:
var joinQuery = from spQ in spatialTableQuery
join mnQ in MainQuery
on spQ.Polygon.Intersects(mnQ.PointGeography) equals 1
我收到以下错误:
The name 'mnQ' is not in scope on the left side of 'equals'. Consider swapping the expressions on either side of 'equals'.
在 SQL 中,我编写了一个类似的查询,如下所示,因此我知道 SQL 支持它:
SELECT * FROM Address a
INNER JOIN SPATIALTABLE b
WITH(INDEX(geog_sidx))
ON b.geom.STIntersects(a.PointGeography) = 1
最佳答案
尝试这样的事情:
var joinQuery =
from spQ in spatialTableQuery
from mnQ in MainQuery
where spQ.Polygon.Intersects(mnQ.PointGeography) = 1
关于sql - Entity Framework 中的空间连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7922005/