类型 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_geomertySystem.Data.Spatial.DbGeometry 之间的转换发生在哪里?

【问题讨论】:

【参考方案1】:

尝试升级到 dotConnect for PostgreSQL 的最新 (7.11.1190) 版本。这能解决问题吗?如果您无法访问许可的 v7.11.1190,请通过试用版进行检查。

【讨论】:

7.11 的试用版似乎可以工作,谢谢。我很困惑为什么旧版本在我同事的机器上运行良好,但在我的机器上却不行。

以上是关于类型 spatial_geometry 未使用命名空间或别名进行限定。只有原始类型可以在没有限定的情况下使用的主要内容,如果未能解决你的问题,请参考以下文章

命名和未命名类型

命名类型和未命名类型和基础类型

命名类型和未命名类型和基础类型

类型命名空间未声明或不是简单类型

C++ 错误:尝试访问全局变量时变量未命名类型

[Journey with golang] 3. Type system