首页 > 解决方案 > 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 查询之前注册类型并在之后再次重置类型处理程序。

标签: c#.netormdapper

解决方案


推荐阅读