一、sqlcommon的特色
1. 輕量級,整個包只有123kb。
2. 性能好,自測。。。
3. API和功能簡單、代碼簡短、可維護性好基本都能看懂。這個點我認為很重要,你不用為了實現一個需求而四處查資料,這意味着這個包你可以自行維護修改(修改版只限自己使用尊重一下作者創作權)。
4. 面向ADO.NET標准接口實現強大的兼容,不依賴具體數據庫驅動程序。支持netframwork4.5及以上,和所有兼容standard2.0的.net框架
5. 組件獨立,sqlcommon的幾大核心組件,都是可以獨立起來使用的,比如你不會寫IL你就可以利用我寫的繼續擴展查詢API
6. github:https://github.com/1448376744/SqlCommon
7. nuget:https://www.nuget.org/packages/SqlCommon
二、sqlcommon的極大核心組件
sqlcommon分為common和expression兩個文件夾。common文件夾中包含一個輕量級的orm功能類似《dapper》980行代碼。expression文件夾中包含linq語法糖,用於自動生成sql。
1.TypeConvert-類型轉換器
這個API是用來解序列的,底層采用IL動態創建解碼函數(緩存),實際上會比直接反射性能略好
這個API是用於序列化對象將DataReader與實體類型進行動態綁定,底層采用IL實現
2. TypeMapper-類型映射
這個API定義了綁定實體類型中的每個屬性的規則,在TypeMapper中有定義,你可以通過實現ITypeMapper接口,來編寫自己的TyperMapper,
來定制化屬性映射規則,屬性名和字段名映射規則。具體可以參照我的源代碼
var handler = TypeConvert.GetSerializer<Student>(new CustomMapper(), reader);
3. SqlMapper-sql映射
支持多結果集並行查詢
多參數類型支持
三、linq語法糖,更多用列請查看github
如果喜歡我的這個linq但是不想使用我的sqlmapper的,可以用你喜歡的ORM實現一下IDbContext接口,然后吧SqQuery擴展到你的數據庫上下文對象上。具體可以參考我的From實現