zoukankan      html  css  js  c++  java
  • Dapper解析嵌套的多层实体类

    在作项目的时候,我会将一些不涉及查询的字段,形成JSON统一存放在一个字段中,向下面这样的来建实体类,

    public class WechatModel
    {
            public string wechatid { get; set; }    
            public WxMpModel wxmpinfo { get; set; }
    }
    public class WxMpModel
    {
           public string appid { get; set; }
           public string secret { get; set; }
           public string token { get; set; }
    }

    表字段为

    [wechatid] [varchar](50) NOT NULL,
    [wxmpinfo] [varchar](max) NULL

    但是在用Dapper向数据库存取的时候,Dapper会报异常,无法序列化,解决方法为,新建一个转换类,在使用前注册一下

        public class JsonConvertHandler<T> : SqlMapper.TypeHandler<T>
        {
            public override T Parse(object value)
            {
                return JsonConvert.DeserializeObject<T>((string)value);
            }
    
            public override void SetValue(IDbDataParameter parameter, T value)
            {
                parameter.Value = JsonConvert.SerializeObject(value);
            }
        }

    使用示例

    SqlMapper.AddTypeHandler(new JsonConvertHandler<WxMpModel>());
    DapperHelper.Execute(strSql.ToString(), model);

    如此,大功告成,新增,编辑,获取实体,均可正常解析

  • 相关阅读:
    delphi实现FTP下载
    delphi中ClientDataSet的隐含功能
    删除注册的ODBC
    ZOJ 1041 Transmitters
    POJ 3232 Accelerator
    POJ 3460 Booksort
    UVa 11552 Fewest Flops
    SOJ 8064 Whack the Groundhog
    BNU OJ 29355 手速为王
    POJ 3322 Bloxorz I
  • 原文地址:https://www.cnblogs.com/icejd/p/12585753.html
Copyright © 2011-2022 走看看