加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 06:27:46 所属栏目:MsSql教程 来源:网络整理
导读:我有一个使用SQL“uniqueidentifier”类型的现有数据库,它看起来像一个不同于.Net GUID的GUID格式. 问题:使用Dapper,如何将SQL uniqueidentifier列映射到.Net? 问题: 使用Dapper-dot-net,当我使用.Net GUID类型映射列时,它会编译并运行,但所有.ToString()
我有一个使用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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读