gpt4 book ai didi

c# - 使用 Dapper 将字符串映射到 guid

转载 作者:可可西里 更新时间:2023-11-01 08:32:16 28 4
gpt4 key购买 nike

我正在使用 Dapper 敲定一些需要访问 PostgreSQL 数据库的负载测试工具。此特定版本的 PostgreSQL 本身不支持 GUID,因此 GUID 值存储为 32 个字符串。使用 someGuid.ToString("N") 将值转换为字符串,可以使用 new Guid(stringValueFromColumn) 将值转换回 Guid。

我的问题是如何让 Dapper 读取字符串并将它们转换回 Guid?

我尝试修改 DbType 映射,但这不起作用。

最佳答案

我正在使用 MySql,但它有同样的问题,因为我将 Guid 存储为字符串。为了修复映射而不必为列添加别名,我使用了以下内容:

public class MySqlGuidTypeHandler : SqlMapper.TypeHandler<Guid>
{
public override void SetValue(IDbDataParameter parameter, Guid guid)
{
parameter.Value = guid.ToString();
}

public override Guid Parse(object value)
{
return new Guid((string)value);
}
}

在我的 Startup.cs 中:

public void ConfigureServices(IServiceCollection services)
{
SqlMapper.AddTypeHandler(new MySqlGuidTypeHandler());
SqlMapper.RemoveTypeMap(typeof(Guid));
SqlMapper.RemoveTypeMap(typeof(Guid?));
}

关于c# - 使用 Dapper 将字符串映射到 guid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5898988/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com