一切福田,不離方寸,從心而覓,感無不通。

DapperExtensions扩展,一个不再更新的小众类库的踩坑之路

公司一个项目要从.net framework平台转成.net core平台,都是为了跨平台啊。 老的项目中用了个小众的类库:DapperExtensions。 有个同事直接nuget安装了该类库的.net core版本:DapperExtensions.NetCore,然后一直报错;于是向我求助。 报错代码如下图: 报错信息: P.S 同事用的是异步调用,同步调用是没问题的。 由于此类库不再更新,官网也没有了……也找不到文档; 在网上很少的资料中,都是些简单的示例,使用的都是同步调用,但同事用的是异步调用。我们一块折腾了半个上午,也没解决。但还不想放弃啊……于是又双叒叕重新撸了n遍,豁然发现:生成的MySQL语句里怎么会有中括号!灯下黑~…… 于是,网上一通搜,终于找到一篇说SQL方言的文档,看了一下DapperExtensions的源码,发现也有设置SQL方言的方法:

运行……还是报错……%~@#¥,没起作用!无奈……拉倒吧,把代码改为同步调用吧。 还是不想放弃,再看一眼吧——竟然发现DapperExtensions的源码中异步方法和同步方法的SQL方言竟然是单独设置的,这类库设计的也没谁了……,于是设置了一下异步的SQL方言为MySQL,终于解决了。代码如下:

  总结: 不要使用小众类库,尤其是个人开发的。因为出了问题太难解决了。 解决问题要细心,更要有耐心;放空思想,从头多撸几遍。 小众类库的代码设计考虑不周: a. 比如说,代码已经写为new MySqlConnection(ConnString),SQL方言就应该自动设置为MySQL了。 b. 另一个,对于SQL方言,设置一次就行了,不应该设计成异步要单独设置。   解决过程实属不易,希望能帮助大家,谢谢~  

龙生   25 Nov 2020
View Details