アプリケーションで動的クエリをサポートするために Entity SQL を生成しています。ただし、Entity Framework 5 を使用して Entity SQL で空間条件を指定する方法を見つけることができませんでした。
次のような空間フィールドを含むエンティティを持つモデルに対して Linq to Entities を使用したクエリ:
var a = new Model1Container();
var b = from c in a.Entity1
where c.Loc.Intersects(System.Data.Spatial.DbGeography.FromText("POINT (43 -73)"))
select c;
次のような SQL Server 2012 に期待される SQL を生成します。
SELECT
[Extent1].[Id] AS [Id],
[Extent1].[Loc] AS [Loc]
FROM [dbo].[Entity1] AS [Extent1]
WHERE ([Extent1].[Loc].STIntersects(geography::Parse(N'POINT (43 -73)'))) = 1
上記の Linq to Entities クエリを ESQL を使用してどのように書き換えますか? それともこれは不可能ですか?