Entity Frameworkにおける空間結合

私はdbgeographyの "Intersects"メソッド(私はEF June 2011 CTPを使用しています)を使用してLINQで結合ステートメントを作成します。問題は私が次のようなことを書いた場合です:

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
4
join節を使用する代わりにWhere節(ala SQL-82)で試すことができますか? join句はJoin拡張メソッドに変換され、mnQは左側セレクタの入力パラメータではありません。
追加された 著者 Jim Wooley,

1 答え

次のようなことを試してください:

var joinQuery = 
   from spQ in spatialTableQuery
   from mnQ in MainQuery
   where spQ.Polygon.Intersects(mnQ.PointGeography) = 1
1
追加された