公司一个项目要从.net framework平台转成.net core平台,都是为了跨平台啊。
老的项目中用了个小众的类库:DapperExtensions。
有个同事直接nuget安装了该类库的.net core版本:DapperExtensions.NetCore,然后一直报错;于是向我求助。
P.S 同事用的是异步调用,同步调用是没问题的。
由于此类库不再更新,官网也没有了……也找不到文档;
在网上很少的资料中,都是些简单的示例,使用的都是同步调用,但同事用的是异步调用。我们一块折腾了半个上午,也没解决。但还不想放弃啊……于是又双叒叕重新撸了n遍,豁然发现:生成的MySQL语句里怎么会有中括号!灯下黑~……
于是,网上一通搜,终于找到一篇说SQL方言的文档,看了一下DapperExtensions的源码,发现也有设置SQL方言的方法:
1 |
DapperExtensions.DapperExtensions.SqlDialect = new MySqlDialect(); |
运行……还是报错……%~@#¥,没起作用!无奈……拉倒吧,把代码改为同步调用吧。
还是不想放弃,再看一眼吧——竟然发现DapperExtensions的源码中异步方法和同步方法的SQL方言竟然是单独设置的,这类库设计的也没谁了……,于是设置了一下异步的SQL方言为MySQL,终于解决了。代码如下:
1 |
DapperExtensions.DapperAsyncExtensions.SqlDialect = new MySqlDialect(); |
总结:
解决过程实属不易,希望能帮助大家,谢谢~