En utilisant Dapper-dot-net, comment mapper la colonne SQL identifiant unique à un type .Net?

.net dapper tsql

Question

J'ai une base de données existante qui utilise le type SQL "identifiant unique", qui ressemble à un format GUID différent d'un GUID .Net.

Question: En utilisant Dapper, comment mapper la colonne uniqueidentifier SQL à .Net?

Problème: à l' aide de Dapper-dot-net, lorsque je mappe la colonne à l'aide du type GUID .Net, elle compile et s'exécute, mais toute la sortie .ToString () affiche le même GUID incorrect. (bon ça ne correspond pas à ce que je vois dans SSMS)

Lorsque j'essaie de mapper la colonne en utilisant le type de chaîne, j'obtiens une erreur de compilation.

Des idées? Est-ce possible?

Réponse populaire

J'ai également constaté que je pouvais le convertir en un varchar dans T-SQL, mais je voulais le type de GUID réel dans .NET.

Avec Dapper 1.38 (utilisant également SQL Server comme SGBDR sous-jacent), je n’ai eu aucun problème avec le mappage si je faisais de la propriété Nullable<Guid> un Nullable<Guid> . Un SqlGuid ou un String ne fonctionnait pas.

public class MapMe
{
    public Guid? GuidByDapper { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        using (var connection = Utility.GetConnection())
        {
            var mapped = connection.Query<MapMe>("SELECT NEWID() AS GuidByDapper").Single();
            Console.WriteLine("Guid: {0}", mapped.GuidByDapper);
        }
    }
}

En tant qu'application Console, il génère les éléments suivants:

Guid: 85d17a50-4122-44ee-a118-2a6da2a45461


Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi