Deutsch

Problem: queryFilter-Tasks können nicht mit GlobalID ausgeführt werden

Beschreibung

Die Ausführung eines queryFilter-Tasks mit GlobalID in ArcGIS Runtime SDK for .NET schlägt fehl, und es werden keine Verknüpfungen zwischen Features eingerichtet. Im Folgenden sehen Sie ein Beispiel für einen fehlgeschlagenen queryFilter-Task:

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

Ursache

Das Problem liegt in der Korrelation von GlobalID und GUID (Globally Unique Identifier). GlobalID-Werte werden automatisch generiert, wenn der Tabelle Datensätze hinzugefügt werden. Diese Werte werden in Großbuchstaben gespeichert. Wenn jedoch Runtime-Inhalt veröffentlicht wird, hat der zurückgegebene GlobalID-Wert das System.GUID-Format, und die Guid.ToString-Methode speichert die Werte standardmäßig in Kleinbuchstaben. Dies ist ein Microsoft MSDN-Design, bei dem der Wert der GUID als eine Reihe von Hexadezimalzahlen in Kleinbuchstaben dargestellt wird.

Dieses Verhalten führt zu Konflikten in ArcMap, wenn die GlobalID- und GUID-Spalten in Beziehung gesetzt werden, da beide Werte im Zeichenfolgenformat verglichen werden und dabei die Schreibweise relevant ist (Beispiel: In ArcMap sind der GUID-Wert {EF2E0C18-638C-4C6D-AFA7-4D23581CCAA5} und {ef2e0c18-638c-4c6d-afa7-4d23581ccaa5} nicht identisch).

Lösung oder Problemumgehung

Verwenden Sie einen der folgenden Lösungsvorschläge, um den queryFilter-Task auszuführen:

Referenzinformationen