français

Problème : impossible d’effectuer des tâche queryFilter avec GlobalID

Description

Les tâches queryFilter effectuées avec GlobalID dans ArcGIS Runtime SDK for .NET échouent et aucune liaison n’est établie entre les entités. Voici un exemple de tâche queryFilter ayant échoué :

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

Cause

Ce problème est lié à la corrélation entre GlobalID et le GUID (Globally Unique Identifier). Les valeurs de GlobalID sont automatiquement générées lorsque des enregistrements sont ajoutés à la table. Ces valeurs sont stockées via une représentation de chaîne en majuscules. Cependant, lorsque le contenu d’exécution est publié, le GlobalID renvoyé est au format System.GUID et la méthode Guid.ToString stocke les valeurs en minuscules par défaut. Il s’agit d’une conception de Microsoft MSDN pour laquelle la valeur du GUID est représentée sous forme de série de nombres hexadécimaux en minuscules.

Ce comportement génère des conflits dans ArcMap dans le cas des colonnes GlobalID et GUID car les deux valeurs sont comparées au format chaîne, qui est sensible à la casse (par exemple, dans ArcMap, la valeur du GUID {EF2E0C18-638C-4C6D-AFA7-4D23581CCAA5} n’est pas identique à {ef2e0c18-638c-4c6d-afa7-4d23581ccaa5}).

Solution ou procédure de contournement

Utilisez l’une des solutions suggérées ci-dessous pour mener à bien la tâche queryFilter :

Informations associées