问题

问题:无法使用 GlobalID 执行 queryFilter 任务

Last Published: April 25, 2020

描述

在 ArcGIS Runtime SDK for .NET 中使用 GlobalID 执行 queryFilter 任务失败,并且要素之间未建立任何链接。 以下为失败的 queryFilter 任务示例:

...
qF.WhereClause = "GlobalID='{DCD212BC-9D7C-48B5-97FD-BBA9454BFBFA}'"
...

原因

问题在于 GlobalID 和全局唯一标识符 (GUID) 的相关性。 将记录添加到表格后,将自动生成 GlobalID 值。 使用大写字符串表示来存储这些值。 但是,发布运行时内容后,返回的 GlobalID 将采用 System.GUID 格式,并且 Guid.ToString 方法默认以小写格式存储值。 这是一种 Microsoft MSDN 设计,其中 GUID 的值表示为一系列小写十六进制数字。

将 GlobalID 列与 GUID 列进行关联时,这种行为会导致 ArcMap 中出现冲突,因为将以字符串格式对这两个值进行比较,而字符串格式区分大小写(例如,在 ArcMap 中,GUID 值 {EF2E0C18-638C-4C6D-AFA7-4D23581CCAA5}{ef2e0c18-638c-4c6d-afa7-4d23581ccaa5} 不同)。

解决方案或解决方法

请使用以下建议的解决方案之一来完成 queryFilter 任务:

文章 ID:000015294

从 ArcGIS 专家处获得帮助

联系技术支持部门

下载 Esri 支持应用程序

转至下载选项

相关信息

发现关于本主题的更多内容