使用Dapper-dot-net,如何将SQL uniqueidentifier列映射到.Net类型?

前端之家收集整理的这篇文章主要介绍了使用Dapper-dot-net,如何将SQL uniqueidentifier列映射到.Net类型?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个使用sql“uniqueidentifier”类型的现有数据库,它看起来像一个不同于.Net GUID的GUID格式.

问题:使用Dapper,如何将sql uniqueidentifier列映射到.Net?

问题:
使用Dapper-dot-net,当我使用.Net GUID类型映射列时,它会编译并运行,但所有.ToString()输出显示相同的错误GUID. (它与我在SSMS中看到的不一致)

当我尝试使用字符串类型映射列时,我收到编译器错误.

想法?这可能吗?

解决方法

我还发现我可以将它转换为T-sql中的varchar,但我想要.NET中的实际GUID类型.

使用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

猜你在找的MsSQL相关文章