Entity Framework 6 和地理数据 STContains
Entity Framework 6 and Geography data STContains
我已经包含 Microsoft.SqlServer.Types
以启用 Entity Framework 中的地理和几何类型,但我没有看到任何等同于 STContains()
的函数。
我需要进行查询以检索包含点的地理位置
在SQL中我是这样写的:
SELECT adm1code, adm1name
FROM Adm2GeoBoundaries
WHERE Coords.STContains(geography::Parse('POINT(-121.703796 46.893985)'));
在 LINQ 中我希望有类似
的东西
using (GeoEntities db = new GeoEntities ())
{
DbGeography location = DbGeography.FromText("POINT(-121.703796 46.893985)");
var admin = from a in db.Adm2GeoBoundaries
where a.Coords.STContains(location)
select a;
}
但是 a.Coords.STContains(location)
抛出错误
STContains method doesn't exist
根据 EF6 Source Code 的源代码,STContains
似乎在 EF6 中实现为 Contains。
查看 SqlTypesAssembly.cs
您应该能够看到它应该调用 STContains
方法。
我已经包含 Microsoft.SqlServer.Types
以启用 Entity Framework 中的地理和几何类型,但我没有看到任何等同于 STContains()
的函数。
我需要进行查询以检索包含点的地理位置
在SQL中我是这样写的:
SELECT adm1code, adm1name
FROM Adm2GeoBoundaries
WHERE Coords.STContains(geography::Parse('POINT(-121.703796 46.893985)'));
在 LINQ 中我希望有类似
的东西using (GeoEntities db = new GeoEntities ())
{
DbGeography location = DbGeography.FromText("POINT(-121.703796 46.893985)");
var admin = from a in db.Adm2GeoBoundaries
where a.Coords.STContains(location)
select a;
}
但是 a.Coords.STContains(location)
抛出错误
STContains method doesn't exist
根据 EF6 Source Code 的源代码,STContains
似乎在 EF6 中实现为 Contains。
查看 SqlTypesAssembly.cs
您应该能够看到它应该调用 STContains
方法。