Просторовий приєднання до структури Entity

Я хочу написати запис про приєднання до LINQ за методом "перехрестя" dbgeography (я використовую EF June 2011 CTP). Проблема полягає в тому, якщо я пишу щось на зразок цього:

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

Я отримую таку помилку:

Назва літери "mnQ" не доступна для лівої частини "рівних". Розглянемо   обмінюючи вирази по обидва боки від "рівних".

У SQL я написав подібний запит, як показано нижче, тому я знаю, що SQL підтримує його:

SELECT  * FROM   Address a 
INNER JOIN  SPATIALTABLE b
WITH(INDEX(geog_sidx))
ON b.geom.STIntersects(a.PointGeography) = 1
4
Чи можете ви спробувати це в пункті Where (ala SQL-82), а не використовувати приєднання? Застереження приєднання перетворюється в метод Join extension, і mnQ не є параметром введення на лівій панелі вибору.
додано Автор Jim Wooley, джерело

1 Відповіді

Спробуйте щось на зразок цього:

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