2013-10-10 88 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。它應該足夠簡單,以創建存儲過程來處理地理數據類型,但不在結果實體對象中包含該特定類型。

相關問題