Spatial Join in Entity Framework

Ik wil een join-statement schrijven in LINQ met de "Intersects" -methode van dbgeography (ik gebruik EF CTP van juni 2011). Het probleem is als ik zoiets schrijf als dit:

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

Ik krijg de volgende foutmelding:

De naam 'mnQ' bevindt zich niet aan de linkerkant van 'is gelijk aan'. Overwegen   de uitdrukkingen aan beide kanten van 'is gelijk aan' omwisselen.

In SQL heb ik een vergelijkbare query geschreven als hieronder, dus ik weet dat SQL het ondersteunt:

SELECT  * FROM   Address a 
INNER JOIN  SPATIALTABLE b
WITH(INDEX(geog_sidx))
ON b.geom.STIntersects(a.PointGeography) = 1
4
Kun je het proberen in een Where-component (ala SQL-82) in plaats van een join-clausule te gebruiken? De join-clausule vertaalt zich in een Join-extensiemethode en mnQ is geen invoerparameter aan de linkerkantskiezer.
toegevoegd de auteur Jim Wooley, de bron

1 antwoord

Probeer zoiets als dit:

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