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);
}
Dapper.FastCRUD与Dapper中的CustomPropertyTypeMap冲突的更多相关文章
- hadoop+javaWeb的开发中遇到包冲突问题(java.lang.VerifyError)
1.HDFS + WEB 项目 报java.lang.VerifyError... 异常 抛异常: Exception in thread "main" java.lang.Ver ...
- LINQ-to-SQL那点事~LINQ-to-SQL中的并发冲突与应对
回到目录 在上一篇文章中提到了并发冲突,还说详细的说明在这讲来说,呵呵,那现在就说一下吧! 并发冲突产生的原因 事实上,linq to sql中的并发冲突是指记录在进行update操作时,客户端A1取 ...
- jQuery中 $ 符号的冲突问题
jQuery中 $ 符号的冲突问题是常见问题之一. 在jQuery中,$是jQuery的别名,为了书写方便,我们更习惯用$('#id')这一类的方式来书写代码.当同一页面引用了jQuery多个版本 ...
- CSS那些事!这个篇幅是我特意开的,不是因为帮助小菜之类的,而是在多人的团队配合中各种命名冲突的规范让人蛋疼
CSS那些事!这个篇幅是我特意开的,不是因为帮助小菜之类的,而是在多人的团队配合中各种命名冲突的规范让人蛋疼. css这个东西只要不是新的离谱都会写,但是每个人的命名风格,方法,都不同 有人喜欢驼峰, ...
- Maven中 jar包冲突原理与解决办法
Maven中jar包冲突是开发过程中比较常见而又令人头疼的问题,我们需要知道 jar包冲突的原理,才能更好的去解决jar包冲突的问题.本文将从jar包冲突的原理和解决两个方面阐述Maven中jar包冲 ...
- Dapper 条件语句(Where) 中参数使用
public static List<ECInput> GetECInputList(DateTime beginDate,DateTime endDate,string[] barcod ...
- ECommon.Dapper 轻量级的dapper扩展
我们都知道Dapper这个orm框架,但是我们也知道他的扩展目前没有特别好的,今天我就推荐一个轻量级的很方便使用的一个扩展叫做 ECommon.Dapper,它是ECommon的一个类库,关于ECom ...
- Dapper.Common基于Dapper的开源LINQ超轻量扩展
Dapper.Common Dapper.Common是基于Dapper的LINQ实现,支持.net core,遵循Linq语法规则.链式调用.配置简单.上手快,支持Mysql,Sqlserver(目 ...
- Dapper扩展之~~~Dapper.Contrib
平台之大势何人能挡? 带着你的Net飞奔吧!http://www.cnblogs.com/dunitian/p/4822808.html#skill 上一篇文章:Dapper逆天入门~强类型,动态类型 ...
- maven exclusion 解决maven传递依赖中的版本冲突
传递依赖是maven最有特色的.最为方便的优点之一,可以省了很多配置.如a 依赖 b,b 依赖c 默认 a也会依赖 c.但是也会带来隐患,如版本冲突.当然maven也考虑到解决办法,可以使用exclu ...
随机推荐
- 【Frida】启动手机上的Frida插件
运行以下命令可以保证Frida一直在手机上运行,不关机,Frida就不关 adb shell su -c "./data/local/frida-server-15.2.2-android- ...
- C3861: “CoInitialize”“CoUninitialize”: 找不到标识符
error C3861: "CoInitialize": 找不到标识符error C3861: "CoUninitialize": 找不到标识符 包含头文件和链 ...
- 记一次修改dotnet-cnblogs图片路径的正则匹配规则
大佬的GitHub 前言 因为最近一时心血来潮,学了markdown,我觉得但凡是个人,对于不用word或html就可以有不错的排版,而且使用起来简单便捷,都会投向markdown的怀抱中的.又因 ...
- 杂:python_windows标准输出带颜色
import ctypes handle = ctypes.windll.kernel32.GetStdHandle(-11) # -11 for output -10 for input - ...
- Win10家庭版找不到组策略gpedit.msc怎么办
Win10家庭版找不到组策略gpedit.msc怎么办 @echo off pushd "%~dp0" dir /b %systemroot%\Windows\servicing\ ...
- python 的钩子函数
一.什么是钩子函数 hook函数就是在一定条件下才会执行的函数,将自己实现的函数挂载到挂载点上 1. hook函数:就是我们自己实现的函数,函数类型与挂载点匹配(返回值,参数列表)2. 挂接:也就是h ...
- 关于import-route static 和default-route-advertise区别知识总结
关于import-route static 和default-route-advertise区别知识总结 一.相关解释 import-route static 命令不能引入外部路由的默认路由,OSP ...
- django项目初创建报错TypeError: unsupported operand type(s) for /: 'str' and 'str'
解决办法: 'DIRS': [os.path.join(BASE_DIR, 'templates')],
- vim多视窗操作
命令行模式下输入:sp 1.txt 打开新的水平分屏视窗来编辑1.txt 命令行模式下输入:vsp 2.txt 打开新的垂直分屏视窗来编辑2.txt 普通模式下Ctrl+w s 将当前窗口分割成两个水 ...
- 蓝桥杯训练赛二-1141 问题 C: C语言训练-百钱百鸡问题
题目描述 中国古代数学家张丘建在他的<算经>中提出了著名的"百钱买百鸡问题":鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁.母.雏各几何? 输入 无 ...