0

创建了一个 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 上的许多示例都是“代码优先”示例,它们在其 c# 代码中使用“DbGeography”类型作为类型,并从代码生成数据库,从而生成具有“geography”类型属性的表。

我如何先做这个数据库并修复类型?使用“表映射”视图时,“DBGeography”似乎不在类型的下拉列表中。

使用 EF 5、NET 4.5、VS 2012 SP 1、SQL Server 类型

4

1 回答 1

2

我想通了。看起来像向导中的错误。如果 SQL 中的表没有主键,向导会在生成的 EF 模型中自动生成一个键。它看起来是随机的,有时会生成一个密钥,有时会生成多个属性密钥。Geography 数据类型不能是键。它不是桌子上的钥匙,但巫师把它做成了钥匙。

希望此回复对其他人有所帮助。

于 2012-12-20T16:48:02.233 回答