2014-03-04 34 views
1

我試圖在c#linq查詢中使用距離作爲參數。 WHERE子句返回「STGeomFromText不會在這方面存在」以下的錯誤:LINQ中的空間數據方法

query = from i in _db.ILV 
    join p in _db.PC on 
    i.PostCode equals p.PostCode 
    where (!string.IsNullOrEmpty(rng)) ? STGeomFromText(i.Point).STDistance(q.Point) <= rng : true 

使用System.Spatial已申報。任何人都可以告訴我正確的方法來做到這一點?

回答

1

看起來您處於數據上下文中。在這種情況下,你應該使用System.Data.Spatial,你將無法直接調用該函數。

http://msdn.microsoft.com/en-us/data/hh859721.aspx

有關使用空間幾何與實體的其他信息,請參閱 http://blogs.msdn.com/b/efdesign/archive/2011/05/04/spatial-types-in-the-entity-framework.aspx

+0

我一直運行到的問題是,當我嘗試使用System.Data.Spatial申報,系統告訴我它不不存在。 –

+0

您需要將其作爲參考包含在您的項目中。右鍵單擊項目 - >添加引用 - >搜索引用。 –

+0

System.Data.Spatial不顯示爲引用中的一個選項。 –