gpt4 book ai didi

c# - Dapper 和字符串到自定义类型的隐式转换

转载 作者:太空狗 更新时间:2023-10-29 23:14:51 24 4
gpt4 key购买 nike

我有一个名为 AdviceId 的类,它支持与字符串的隐式转换。我还覆盖了类上的 ToString() 方法,以确保每当调用此方法时都返回正确的字符串输出。

我的应用程序使用 Dapper 保存数据。以前 AdviceIds 被保留并作为字符串检索,但我现在尝试使用特定类型。但是,这失败了。是否有特殊技巧告诉 Dapper 在字符串和我的 AdviceId 类型之间使用隐式转换?

更新通过向 SqlMapper 添加类型映射,我设法让 Dapper 将 AdviceId 的实例作为字符串插入

SqlMapper.AddTypeMap(typeof(AdviceId), DbType.String);

并通过使 AdviceId 实现 IConvertible。但是,我没有运气将字符串从数据库转换回 AdviceId 的实例。

最佳答案

看起来 Marc 添加了 in June 2014你可以调用AddTypeHandler用你自己的实现 SqlMapper.TypeHandler<AdviceId>我通过 this blog 找到的但马克也写了博客here .

public class AdviceIdTypeHandler : SqlMapper.TypeHandler<AdviceId>
{
public override void SetValue(IDbDataParameter parameter, AdviceId value)
{
parameter.Value = value.ToString();
}

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

SqlMapper.AddTypeHandler(new AdviceIdTypeHandler());

关于c# - Dapper 和字符串到自定义类型的隐式转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23502237/

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