Dapper.FastCRUD与Dapper中的CustomPropertyTypeMap冲突

在使用Dapper.NET时,由于生成的实体的属性与数据库表字段不同(如表字段叫USER_NAME,生成的对应的实体属性则为UserName)。

这时需要使用Dapper中的CustomPropertyTypeMap和SqlMapper.SetTypeMap(XX)进行设置。但这样设置后与Dapper.FastCRUD冲突,导致Dapper.FastCRUD无法读取数据。

原因就是Dapper.FastCRUD在生成SQL语句时,使用了类似USER_NAME AS UserName这样的写法导致。这样就是SqlMapper.SetTypeMap(XX)映射字段不同。

解决方案:

找到Dapper.FastCRUD源代码:X:\github\Dapper.FastCRUD\Dapper.FastCRUD\SqlBuilders\StatementSqlBuilder.cs中约161行的函数,添加如下粉红色代码一行,如下:

[MethodImpl(MethodImplOptions.AggressiveInlining)]
public string GetColumnName(PropertyMapping propMapping, string tableAlias, bool performColumnAliasNormalization)
{
performColumnAliasNormalization = false;//add by SunYJ@20160412
var sqlTableAlias = tableAlias == null ? string.Empty : $”{this.GetDelimitedIdentifier(tableAlias)}.”;
var sqlColumnAlias = (performColumnAliasNormalization && propMapping.DatabaseColumnName != propMapping.PropertyName)
? $” AS {this.GetDelimitedIdentifier(propMapping.PropertyName)}”
: string.Empty;
return $”{sqlTableAlias}{this.GetDelimitedIdentifier(propMapping.DatabaseColumnName)}{sqlColumnAlias}”.ToString(CultureInfo.InvariantCulture);
}

Original: https://www.cnblogs.com/sun51586/p/5384053.html
Author: sun51586
Title: Dapper.FastCRUD与Dapper中的CustomPropertyTypeMap冲突

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/611288/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 2022-08-16 数据库查询语言之——-DQL

    重点,DQL是我们每天都要接触编写最多也是最难的SQL,该语言用来查询记录,不会修改数据库和表结构。 构建数据库 创建一张student表: DROP TABLE IF EXIST…

    数据库 2023年6月14日
    086
  • HttpServletRequest 类

    HttpServletRequest类有什么作用 HttpServletRequest 类的常用方法 如何获取请求参数 doGet 请求的中文乱码解决: POST 请求的中文乱码解…

    数据库 2023年6月11日
    079
  • mysql多实例部署

    在MySQL中配置多实例 1.软件下载 2.配置用户和组并解压二进制程序至/usr/local下 3.创建各实例数据存放的目录 4.初始化各示例 5.配置配置文件/etc/my.c…

    数据库 2023年5月24日
    088
  • 【转】SpringBoot ElasticSearch 各种查询汇总

    一:文档对象如下 二:非聚合复杂查询(这儿展示了非聚合复杂查询的常用流程) 三:精确查询(必须完全匹配上) 单个匹配termQuery 多个匹配 四:模糊查询(只要包含即可) 五:…

    数据库 2023年6月6日
    072
  • Maven项目POM文件设置依赖

    https://www.cnblogs.com/stars-one/p/10958796.html 可以参考这个链接 这里个添加依赖 如果在如上界面找不到 请设置一下本地仓库 Or…

    数据库 2023年6月9日
    0116
  • 最新Mysql大厂面试必会的34问题

    1、mysql的隔离级别 四种隔离级别: READ-UNCOMMITTED(读取未提交): 最低的隔离级别,允许读取尚未提交的数据变更, 可能会导致脏读、幻读或不可重复读 。 RE…

    数据库 2023年5月24日
    080
  • 从学校到公司,2022新的起点!!!

    步入新的阶段 目前仍然是大学生的身份,但也算是打工人了。2021秋招时来到了天津的一个公司做实习生,并签订了三方协议。已经来公司将近一个月了,我在这段时间想了很多关于我的未来发展方…

    数据库 2023年6月6日
    072
  • 平均工资:部门与公司比较

    力扣(LeetCode)615. 平均工资:部门与公司比较 困难难度数据库题目 一. 题目 给如下两个表,写一个查询语句,求出在每一个工资发放日,每个部门的平均工资与公司的平均工资…

    数据库 2023年6月11日
    074
  • 程序设计之设计模式介绍

    一、什么是设计模式? 答:程序都是通过写代码来实现的,老前辈们在开发程序的过程中,为了解决某一类问题,日积月累总结出了一套套的代码编写经验,通过这些经验,按照套路出牌,可以让开发出…

    数据库 2023年6月14日
    084
  • Dev-tools使用遇到的小问题

    Dev-tools使用遇到的小问题 间隔长时间后重新打开某网页,提示Failed to load data:No resource with given identifier fo…

    数据库 2023年6月6日
    085
  • 开源二三事|ShardingSphere 与 Database Mesh 之间不得不说的那些事

    背景 前段时间,以 Apache ShardingSphere 核心团队组建的创业公司 SphereEx,正式对外推出了 Database Mesh 2.0 概念以及与之相配套的开…

    数据库 2023年6月16日
    0117
  • MYSQL的Java操作器——JDBC

    在学习了Mysql之后,我们就要把Mysql和我们之前所学习的Java所结合起来 而JDBC就是这样一种工具:帮助我们使用Java语言来操作Mysql数据库 JDBC简介 首先我们…

    数据库 2023年6月14日
    076
  • Spring Boot MongoDB

    Linux下启动MongoDB并使用mongosh连接 启动方式有两种: systemctl start mongod mongod 启动的时候有可能会报类似如下的错误: Exec…

    数据库 2023年6月14日
    085
  • Airbnb JavaScript 代码规范(转载)

    一种写JavaScript更合理的代码风格。 其他代码风格指南 1.1 原始值: 当你访问一个原始类型的时候,你可以直接使用它的值。 string number boolean n…

    数据库 2023年6月11日
    0121
  • 安装多个Jdk

    安装 官方下载地址 目录结构: 配置 PATH 修改 注意:此处的操作可能会有其他未知的问题,最好还是理解window的命令查找机制,然后还是需要根据具体问题具体分析解决。 测试 …

    数据库 2023年6月11日
    093
  • 【黄啊码】MySQL复制以及调优

    一. 简介 MySQL自带复制方案,带来好处有: 数据备份。负载均衡。分布式数据。 概念介绍: 主机(master):被复制的数据库。从机(slave):复制主机数据的数据库。 复…

    数据库 2023年6月16日
    0110
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球