Dapper 自定义类型处理程序

时间:2021-05-03 12:29:47

标签: c# .net orm dapper

我正在尝试将 SQL 的 JSON 功能与 Dapper 结合使用,以便在单个查询中实现 1:N 关系。 我已经有了以下自定义类型处理程序,一切都按预期工作。

public class CustomTypeHandler<T> : SqlMapper.TypeHandler<T>
{
    public override T Parse(object value)
    {
        return JsonConvert.DeserializeObject<T>(value.ToString());
    }

    public override void SetValue(IDbDataParameter parameter, T value)
    {
        parameter.Value = JsonConvert.SerializeObject(value);
    }
}

我可以注册它的使用

SqlMapper.AddTypeHandler(new CustomTypeHandler<MyClass>());

我将在我的代码中结合使用“普通”查询和 json 查询。但是一旦我的自定义处理程序被注册,它将始终使用我的 CustomTypeHandler 类。 有没有办法将“标准”结合使用作为我的习惯?

现在,作为一种解决方法,我在 JSON 查询之前注册类型并在之后再次重置类型处理程序。

0 个答案:

没有答案
相关问题