Procédure : mapper une propriété GUID à une colonne binaire (Entity Framework)
Cette rubrique décrit comment modifier manuellement un fichier .edmx pour mapper une colonne binaire qui stocke des valeurs uniqueidentifier dans la source de données à une propriété GUID dans le modèle conceptuel. Lorsque vous générez ou mettez à jour un modèle de données avec l'Assistant EDM ou l'Assistant Mise à jour du modèle (Entity Data Model Tools), les propriétés GUID des types d'entité sont générées automatiquement pour les colonnes de type uniqueidentifier dans la source de données. Une source de données peut également utiliser des colonnes binaires de 16 octets pour stocker des valeurs GUID. Étant donné que les outils génèrent une propriété binaire pour chaque colonne binaire dans la source de données, vous devez mettre à jour manuellement le mappage de telles colonnes aux propriétés GUID en modifiant le fichier .edmx.
La procédure dans cette rubrique suppose que vous avez ouvert un fichier .edmx valide dans Visual Studio.
Remarque : |
---|
Les modifications apportées à la section SSDL d'un fichier .edmx, comme suggéré dans les procédures suivantes, sont remplacées si vous utilisez l'Assistant Mise à jour du modèle pour mettre à jour votre modèle. |
Pour mapper une propriété GUID à une colonne binaire qui contient des valeurs GUID
Dans Entity Data Model Designer, sélectionnez la propriété à transformer en type GUID.
Dans la fenêtre Propriétés, remplacez le type Binary en Guid.
Une erreur de mappage se produit si vous essayez de générer le projet à ce stade.
Enregistrez le modèle, fermez Entity Data Model Designer, puis ouvrez le fichier .edmx à l'aide de l'Éditeur XML.
Dans la section SSDL, recherchez la propriété binaire qui correspond à la propriété GUID dans la section CSDL.
Remplacez la valeur de l'attribut Type de cette propriété par
uniqueidentifier
. Pour plus d'informations, consultez Property Element (EntityType SSDL).Enregistrez les modifications apportées au modèle et régénérez la solution pour régénérer les classes de données.