Dapper解析嵌套的多层实体类
2024-08-24 20:29:55
在作项目的时候,我会将一些不涉及查询的字段,形成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);
如此,大功告成,新增,编辑,获取实体,均可正常解析
最新文章
- 由浅入深学习ajax跨域(JSONP)问题
- jquery的$().each,$.each的区别
- 在ubuntu 14.04 64位添加32位库
- win8提升winform软件的权限
- Elasticsearch Span Query跨度查询
- Thread.CurrentPrincipal & HttpContext.Current.User
- 关于JAVA中URL传递中文参数,取值是乱码的解决办法
- HTML标签的默认样式
- SSH 端口转发
- 简单字符串处理 hdu2532 Engine
- php的sendmail发件人邮箱设定
- 2018-2019-1 20165234 实现mypwd
- python操作Redis安装、支持存储类型、普通连接、连接池
- centos 安装sbt
- Docker 从入门到放弃(一)安装
- 记账本,C,Github,entity
- debian下如何源码安装tmux
- 集成学习-xgboost
- ios-密码加密
- h5 定位