【发布时间】:2013-10-10 05:49:26
【问题描述】:
我正在尝试查找用户经纬度 X 半径范围内的商店。我已经阅读了很多关于该主题的问题、答案和文章。我的结果不一定要非常准确,但如果使用 Geography 列上的过滤器可能会出现误报,那将是不可接受的。
鉴于上述要求,我认为不需要使用 Geography 数据类型并添加空间索引。我也不需要完美的圆半径。换句话说,边界框是可以接受的。所以我选择了来自 Alastaira 的 solution,他就该主题进行了非常丰富的会议 here.
现在我的应用程序是使用 CF EF4 和 SQL 2008R2 的 MVC。我最初想在 LINQ 中进行操作,就像我在任何其他数据库交互中一样,但老实说,我被以下几个步骤难住了:
DECLARE @point geography = geography::Point(40.7316, -73.9920, 4326);
我认为 EF4 不支持 geography 数据类型,所以这肯定会使事情复杂化。
然后我开始思考......鉴于数据库有点适合这种处理,我是否应该将 TSQL 包装在一个 SP 中,然后吐出一个记录集,然后我可以在其上使用 LINQ?
这是我的第一次空间数据库操作,欢迎提出任何想法或建议,我们将不胜感激。
如果 sp 是一个可行的解决方案,建议最好的实施方式会很棒。
【问题讨论】:
标签: asp.net-mvc entity-framework tsql c#-4.0 sqlgeography