2013-10-10 62 views
1

我正在尝试查找用户经纬度为的X半径内的商店。我已经阅读了很多关于这个主题的问题,答案和文章。我的结果不必是针点准确的,但可能会出现误报,因为您可能会在地理栏中使用过滤器,这是不可接受的。纬度和长地理半径查询

鉴于上述要求,我没有看到需要使用地理数据类型并添加空间索引。我也不需要一个完美的圆半径。换句话说,一个边界框是可以接受的。所以我决定在这个来自Alastaira的solution谁有关于主题的非常丰富的会议here.

现在我的应用程序是使用CF EF4和SQL 2008R2的MVC。我本来想这样做的LINQ操作就像我会任何其他数据库的交互,但我诚实地在几步如难倒:

DECLARE @point geography = geography::Point(40.7316, -73.9920, 4326); 

我不认为EF4支持地理数据类型,以便将肯定会使事情复杂化。

然后我开始思考......因为db是有点适合这种类型的计算,我应该只是将TSQL包装在一个SP中,然后我可以使用LINQ打开一个记录集?

这是我的第一个空间数据库操作,所以任何想法或建议是受欢迎的,将不胜感激。

如果sp是一个可行的解决方案,最好的实现方式的建议将会很好。

回答

1

我不认为EF4支持地理数据类型,所以肯定会使事情复杂化。

实体框架4.x本身不支持地理。

如果sp是一个可行的解决方案,最好的实现方式的建议会很好。

Using stored procedures to return stronly typed objects has already been asked。它应该足够简单,以创建存储过程来处理地理数据类型,但不在结果实体对象中包含该特定类型。

相关问题