簡體   English   中英

實體框架未從Sql Server存儲過程獲取空間類型數據

[英]Entity Framework not getting Spatial type data in result from Sql Server stored procedure

我正在使用帶有.Net 4.5的Entity Framework 6 我有一個選擇並返回數據的存儲過程。 返回列之一是地理類型 在Visual Studio 2015中,我右鍵單擊.edmx文件,單擊“從數據庫更新模型...”。 此操作將獲取我的存儲過程,並創建一個復雜類型的storeprocedurename_Result。 除地理類型外,所有列均以復雜類型對象表示。

同時,我的表之一也具有“地理”類型,但是該表已通過“地理”列成功檢索,並且運行正常。 因此,我可以猜測EF支持地理類型並正在起作用。
但是我不知道為什么它不能在生成的復雜類型中為我生成該類型。
我嘗試手動添加公共System.Data.Entity.Spatial.DbGeography col_name {get; 組; },但結果為空。
為了進行記錄,我嘗試在Sql Server management studion中執行該過程,並且該列在那里。 因此,它在EF端而不是DB端的問題。
我進行了搜索,並得到了幾個類似的問題,但似乎沒有人能夠回答。
我無法理解對此問題的回答。
http://www.scriptscoop.net/t/2758a3668fde/geography-column-returned-in-stored-procedure-not-shown-in-entity-fram.html

它是stackoverflow上的一個
https://stackoverflow.com/questions/28592085/geography-column-returned-in-stored-procedure-not-shown-in-entity-framework-auto# =
詢問上述問題的人使用了一種變通方法,正如他在評論中所說:“不,我認為您無法自動獲取地理位置類型。因為當您在模型瀏覽器中查看結果時,它會顯示“不支持”。這個問題,我存儲的proc通過[pro_GeoLocationPoint.STAsText()作為pro_GeoLocationPoint將地理位置類型轉換為字符串。然后我在C#代碼中使用正則表達式來獲取經度和緯度。” 但這不是一個好的選擇,對此必須有解決方案。

好的...
正如我所期望的那樣(見以前的帖子),這個問題沒有答案,所以現在當我解決問題時,我將鏈接以共享解決方案,這使我成為了地理對象。

我嘗試了很多事情並嘗試了許多解決方案,我多次從edmx刪除了我的過程和SP條目。 並重新創建,但一切都是徒勞的!
比起工作原理如此簡單...在下面的鏈接中,我剛剛打開edmx,而不是打開模型瀏覽器,在模型瀏覽器中轉到缺少列的復雜類型定義,右鍵單擊添加->標量屬性->地理。 並給它精確的名稱,該名稱由存儲過程確定。
就是這樣,保存更改並運行代碼,您必須在獲得數據時正確獲取數據。
我想知道為什么EF無法獲取數據,而在獲取功能/ SP的列信息時卻提到了EDM類型不受支持。 Strage!

參考: http : //www.scriptscoop.net/t/7c1ed5a0f89e/entity-framework-5-function-import-with-spatial-data.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM