类型 spatial_geometry 未使用命名空间或别名进行限定。只有原始类型可以在没有限定的情况下使用
Posted
技术标签:
【中文标题】类型 spatial_geometry 未使用命名空间或别名进行限定。只有原始类型可以在没有限定的情况下使用【英文标题】:The Type spatial_geometry is not qualified with a namespace or alias. Only primitive types can be used without qualification 【发布时间】:2018-12-27 06:58:48 【问题描述】:我们有一个现有的解决方案,它使用 EF5 和 DevArt 的 dotConnect for PostgreSQL 连接到 PostgreSQL 9.4 数据库并生成实体。
我刚刚安装了 Visual Studio 2013 和 dotConnect for PostgreSQL 提供程序,并提取了存储库。我的同事有相同的设置,可以在他们的机器上运行。
当我尝试构建时,我收到了标题中描述的错误消息。我必须在 XML 视图中打开 .edmx 文件(因为 VS 无法显示图表,因为它包含错误),并且包含 spatial_geometry
作为类型的每一行都有蓝色波浪线:
当我删除有问题的行时,项目会构建,但是我错过了空间几何属性,这对应用程序来说是必不可少的。我什至可以从数据库中重新生成实体,但随后我收到错误消息,即名称对每个相同的属性都无效,然后这些属性就丢失了。
为什么 Visual Studio 会抱怨 spatial_geometry
类型(为什么它在我的机器上会这样,而在其他机器上却没有)? spatial_geomerty
和 System.Data.Spatial.DbGeometry
之间的转换发生在哪里?
【问题讨论】:
【参考方案1】:尝试升级到 dotConnect for PostgreSQL 的最新 (7.11.1190) 版本。这能解决问题吗?如果您无法访问许可的 v7.11.1190,请通过试用版进行检查。
【讨论】:
7.11 的试用版似乎可以工作,谢谢。我很困惑为什么旧版本在我同事的机器上运行良好,但在我的机器上却不行。以上是关于类型 spatial_geometry 未使用命名空间或别名进行限定。只有原始类型可以在没有限定的情况下使用的主要内容,如果未能解决你的问题,请参考以下文章