最近几天,又在NuGet上发了一个版本,主要是把旧接口名称FindXXXBySql修改为QueryXXX,因为我发现Dapper及其扩展,以及其它写SQL的ORM,都是QueryXXX,既然这样,接口名称就修改成和大家的习惯一致。
没人用
下载量惨不忍睹,看来,不会有什么人用了。简单分析一下原因,1.大家不再喜欢写SQL;2.不会宣传;3.完备性,比如以前是有支持存储过程的接口的,但我非常不喜欢存储过程,我把接口删了,不过Dapper.LiteSql可以用Dapper兜底;4.可靠性,也就是说,大家用你的ORM,最重要的是放心,显然,除了我自己,别人对这个ORM的信任是没有的。
关于ORM的选择
经过我自己的研究,个人认为,ORM首选EF、EFCore,对于复杂SQL,如果觉得用EF、EFCore不太好写,可以搭配Dapper。
有一部分人会选择国产ORM,原因可能是,1.使用简单方便,上手成本很低很贴心;2.支持的数据库多,支持各种国产数据库。
我自己也写了其它国产ORM的Demo,并在一个小项目中使用了,方便是真的很方便,上手成本极低,功能非常贴心。但以后我可能会更多的倾向于EFCore+Dapper吧,当然对于自己负责的中小项目或WebAPI,我可能会使用自己的LiteSql。为什么不再倾向于使用其它国产ORM了?原因是,1.不放心,虽然作者们会强调,经过了完善的测试,不会有什么大问题,但是人,肯定相对来说,更相信权威的,还是不太放心;2.我发现我自己写的东西,时间长了我自己都不会用了,明明已经有的功能,我以为还没实现。也就是说,随着功能越来越多,不看文档,不投入学习成本根本不会用,要么先学后用,要么边学边用,边学边用的话,做项目的过程中,还要不断学习,回头谁接手谁维护,都得学一下。你愿意学,别人不愿意学,别人可能只是改个BUG,改个需求,不想学。
所以国产ORM,本是为了方便易用,不建议花太多成本学习。为什么EFCore就可以学?看看下载量,它就是行业标准。Dapper也算是另一种标准了。
LiteSql我自己用
虽说开源,源码也简单,但没人会真的去把你源码拿过来完善,大家只想NuGet安装一下就能用,如果有个BUG,没人想去改源码。
没人用,我打算就给自己用。
为什么我自己要用LiteSql?
1.是因为熟悉,因为是自己写的,我对LiteSql比对EF熟悉;2.复杂一点的查询我喜欢写SQL。
有Dapper.LiteSql就行了,为什么还要LiteSql?
1.保不齐哪天用国产数据库或者其它非主流数据库,我不知道Dapper是否支持;2.没有依赖,方便改造。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/database/282320.html