Используя Dapper-dot-net, как мне сопоставить столбец SQL uniqueidentifier с типом .Net?

.net dapper tsql

Вопрос

У меня есть существующая база данных, которая использует тип «uniqueidentifier» SQL, который выглядит как другой формат GUID, чем .Net GUID.

Вопрос: Как использовать Dapper, как мне сопоставить столбца SQL uniqueidentifier с .Net?

Проблема. Используя Dapper-dot-net, когда я сопоставляю столбец с использованием типа .Net GUID, он компилируется и запускается, но весь вывод .ToString () отображает тот же неправильный GUID. (ну это не соответствует тому, что я вижу в SSMS)

Когда я пытаюсь сопоставить столбец с использованием типа строки, я получаю ошибку компилятора.

Идеи? Это возможно?

Популярные ответы

Я также обнаружил, что могу передать его в varchar в T-SQL, но мне нужен фактический тип GUID в .NET.

С Dapper 1.38 (также используя SQL Server в качестве базовой RDBMS) у меня не было проблем с отображением, если я сделал свойство POCO Nullable<Guid> . Строка SqlGuid или String не работает.

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);
        }
    }
}

В качестве приложения консоли выкладывает следующее:

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


Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему