使用“geography”类型的名为“Coordinates”的属性创建了一个SQL Server 2008数据库和表。在VS 2012中创建了一个项目,添加了对Microsoft.SqlServer.Types和EF V5的引用。然后,使用ADO.NET实体数据模型向导生成edmx。当我在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.
Web上的许多示例都是“代码优先”示例,它们使用“DbGeography”类型作为其c#代码中的类型,并从代码生成数据库,从而生成具有“geography”类型属性的表。
如何首先执行此数据库并修复该类型?使用“表映射”视图时,“DBGeography”似乎不在类型的下拉列表中。
使用EF 5,NET 4.5,VS 2012 SP 1,SQL Server类型
答案 0 :(得分:2)
我想出来了。看起来像向导中的错误。如果SQL中的表没有主键,则向导会自动在生成的EF模型中生成密钥。它看起来是随机的,有时会生成一个密钥,有时它会生成几个属性密钥。地理数据类型不能成为关键。它不是表中的关键,但向导使它成为关键。
希望这种回应有助于其他人。