我正在尝试将 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 查询之前注册类型并在之后再次重置类型处理程序。