2012-12-20 47 views
0

創建一個SQL Server 2008數據庫和表,其中包含一個名爲「座標」類型爲「geography」的屬性。在VS 2012中創建了一個項目,添加了對Microsoft.SqlServer.Types和EF V5的引用。然後,使用ADO.NET實體數據模型嚮導生成edmx。當我在VS 2012編譯我收到以下錯誤:不支持類型爲「Geography」的EntityKey屬性。 Entity Framework 5,VS 2012 - 數據庫優先

Error 4 Error 129: The property 'Coordinates' in EntityType 'DBModel.GeoDestination' is not valid. EntityKey properties that are of type 'Geography' are currently not supported. 

許多在網絡上的樣本是「代碼優先」的例子使用類型「DbGeography」在他們的C#代碼類型和生成數據庫從代碼中產生一個表格,其類型爲「geography」。

我該如何做這個數據庫,並修復類型?在使用「表格映射」視圖時,不會出現「DBGeography」類型的下拉列表。

使用EF 5,NET 4.5,VS 2012 SP 1,SQL服務器類型

+0

這個例外說'Coordinates'不能被標記爲實體的關鍵。什麼是數據庫表的主鍵? –

回答

2

我想通了這一點。看起來像嚮導中的錯誤。如果SQL中的表沒有主鍵,那麼嚮導會在生成的EF模型中自動生成一個鍵。它看起來是隨機的,有時會生成一個密鑰,有時會生成多個屬性密鑰。地理數據類型不能是關鍵。這不是桌子上的關鍵,但巫師把它變成了關鍵。

希望此回覆有助於他人。

相關問題