轻量级ORM《sqlcommon》第一个版本发布了
一、sqlcommon的特色
1. 輕量級(jí),整個(gè)包只有123kb。
2. 性能好,自測(cè)。。。
3. API和功能簡(jiǎn)單、代碼簡(jiǎn)短、可維護(hù)性好基本都能看懂。這個(gè)點(diǎn)我認(rèn)為很重要,你不用為了實(shí)現(xiàn)一個(gè)需求而四處查資料,這意味著這個(gè)包你可以自行維護(hù)修改(修改版只限自己使用尊重一下作者創(chuàng)作權(quán))。
4. 面向ADO.NET標(biāo)準(zhǔn)接口實(shí)現(xiàn)強(qiáng)大的兼容,不依賴具體數(shù)據(jù)庫驅(qū)動(dòng)程序。支持netframwork4.5及以上,和所有兼容standard2.0的.net框架
5. 組件獨(dú)立,sqlcommon的幾大核心組件,都是可以獨(dú)立起來使用的,比如你不會(huì)寫IL你就可以利用我寫的繼續(xù)擴(kuò)展查詢API
6. github:https://github.com/1448376744/SqlCommon
7. nuget:https://www.nuget.org/packages/SqlCommon
二、sqlcommon的極大核心組件
sqlcommon分為common和expression兩個(gè)文件夾。common文件夾中包含一個(gè)輕量級(jí)的orm功能類似《dapper》980行代碼。expression文件夾中包含linq語法糖,用于自動(dòng)生成sql。
1.TypeConvert-類型轉(zhuǎn)換器
這個(gè)API是用來解序列的,底層采用IL動(dòng)態(tài)創(chuàng)建解碼函數(shù)(緩存),實(shí)際上會(huì)比直接反射性能略好
?
?
這個(gè)API是用于序列化對(duì)象將DataReader與實(shí)體類型進(jìn)行動(dòng)態(tài)綁定,底層采用IL實(shí)現(xiàn)
2. TypeMapper-類型映射
?這個(gè)API定義了綁定實(shí)體類型中的每個(gè)屬性的規(guī)則,在TypeMapper中有定義,你可以通過實(shí)現(xiàn)ITypeMapper接口,來編寫自己的TyperMapper,
來定制化屬性映射規(guī)則,屬性名和字段名映射規(guī)則。具體可以參照我的源代碼
| 1 | var?handler = TypeConvert.GetSerializer<Student>(new?CustomMapper(), reader); |
?3. SqlMapper-sql映射
支持多結(jié)果集并行查詢
? 多參數(shù)類型支持
?三、linq語法糖,更多用列請(qǐng)查看github
如果喜歡我的這個(gè)linq但是不想使用我的sqlmapper的,可以用你喜歡的ORM實(shí)現(xiàn)一下IDbContext接口,然后吧SqQuery擴(kuò)展到你的數(shù)據(jù)庫上下文對(duì)象上。具體可以參考我的From實(shí)現(xiàn)
總結(jié)
以上是生活随笔為你收集整理的轻量级ORM《sqlcommon》第一个版本发布了的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自动给 Asp.Net Core Api
- 下一篇: 使用Magicodes.SwaggerU