一、sqlcommon的特色 1. 輕量級,整個包只有123kb。 2. 性能好,自測。。。 3. API和功能簡單、代碼簡短、可維護性好基本都能看懂。這個點我認為很重要,你不用為了實現一個需求而四處查資料,這意味著這個包你可以自行維護修改(修改版只限自己使用尊重一下作者創作權)。 4. 面向ADO ...
一、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實現