【发布时间】:2014-02-26 21:17:36
【问题描述】:
使用 Entity Framework 5,可以在 Linq 查询中使用 SQL Server Spatial 过程。
例如,使用 DbGeography 对象,您可以使用“Buffer()”方法,该方法将转换为 SQL Server 中的 STBuffer。同样,Intersects() 将转换为 STIntersects。
这是一个有效的示例查询:
var point = DbGeography.FromText(string.Format("POINT({1} {0})", latitude, longitude), 4326);
var query = from person in persons
let region = point.Buffer(radius)
where person.Location.Intersects(region)
select person;
我想使用 Filter 的可能性(因为如果准确性不是您在此处指出的主要问题,这可以加快您的查询速度:http://www.pauldmendoza.com/post/SQL-Server-Filter-vs-STInterects.aspx) 但是,我似乎无法在 EF5 中找到如何执行此操作。这可能吗?如果是:如何?
我使用的是 SQL Server 2008 R2。
【问题讨论】:
标签: c# sql-server linq entity-framework spatial