[開源].NET高性能框架Chloe.ORM-完美支持.NET Core


扯淡

這是一款輕量、高效的.NET C#數據庫訪問框架(ORM)。查詢接口借鑒 Linq(但不支持 Linq)。借助 lambda 表達式,可以完全用面向對象的方式就能輕松執行多表連接查詢、分組查詢、聚合查詢、插入數據、批量刪除和更新等操作。

.NET Core 發布至今挺久的了,由於我本人不是很趕潮流,因此,都沒去學習它,只是從“道聽途說”中了解到 .NET Core 把很多功能模塊化,分離開來,同時也發展跨平台。最近貌似很火,我也該追隨大家的步伐了,要不真的 OUT 了。學習離不開練習,練習什么呢?就拿 Chloe 開刀吧!Chloe 已穩定許久,繼上周支持 MySql 以后,於是就趁學習 .NET Core 這段時間,順便做出個 ChloeCore 版。利用業余時間,跌跌撞撞熟悉了 .NET Core 的工作方式以及與 .NET Framework 的異同。由於 Chloe 框架本身對外依賴比較少,上周末,早上起來花了不到一個小時就把 ChloeCore 給開發出來了。移植過程基本上就是處理 Type 類型方法和屬性的問題,因為原來 Type 類的很多成員都移到 TypeInfo 類上了,顧名思義,TypeInfo 就是記錄一個 Class 的類型信息,聽說是因為微軟覺得原來 Type 類里面很多成員都不會被日常開發中用到,所以,就把大部分成員都轉移到了 TypeInfo 上去了。至於其它,呃...一帆風順,沒啥棘手的~現在 Chloe 已經支持 .NET Core,感興趣的同學可以從 NuGet 上安裝來試試,NuGet Install Command:Install-Package ChloeCore.SqlServer。或者在 vs 的 NuGet 包管理器中輸入 Chloe 或者 ChloeCore 就可以搜出來了。順便吐槽一下 .NET Core,任何引用都基於 NuGet 包,對 NuGet 極度依賴,害的我花了近一天的時間在學習 NuGet 打包和發布上,折騰死我了!另外,非常感謝園友[小傑]分享了一個漂亮的 Icon 讓我拿來做 Chloe 的圖標!

Chloe.ORM

Chloe?什么東西?妹子嗎?Chloe 剛面世不久,估計很多同學還沒了解。順帶介紹下(以下內容純屬湊字數)...

Chloe 是一枚既懶又任性的程序員開發的一個數據庫訪問框架。目前已經支持 SqlServer 和 MySql 兩種數據庫。框架的增刪查改都依賴 lambda 表達式,因為,作者已經懶得無可救葯,厭倦了手寫 Sql~

Chloe 特性

  1. 實體為純 POCO,完全可以手寫實體,無需任何代碼生成器
  2. 無需任何配置文件,傳個數據庫連接字符串就能活潑亂跳
  3. 增刪查改都可以用 lambda 表達式完成,全對象化編程,智能提示,編譯檢查,容錯率極高
  4. 查詢接口借鑒 Linq,全鏈式開發,無需任何學習成本
  5. 支持多表連接查詢,可以直接返回強類型實體,也可以任意選取指定字段,也可以 Select 匿名對象作為返回結果,隨心所欲,沒有條條框框限制,想怎么玩就怎么玩,查看詳情
  6. 支持聚合查詢,不同於 EntityFramework,Chloe 的聚合查詢更趨於標准 Sql 思想,查看詳情
  7. 支持分組查詢,可以結合聚合函數一起查詢,靈活做統計,查看詳情
  8. 連接查詢、分組查詢、聚合查詢結合使用,可以實現很多復雜查詢,完全可以讓 DB “零視圖”,使項目“零Sql”,查看詳情
  9. lambda 表達式支持豐富,目前除了微軟自家的 EntityFramework 外,還沒發現有比 Chloe 支持更好的框架,覺得是吹牛歡迎來辯,我臉已經打好麻葯,不怕大家來扇!查看詳情
  10. 支持各種數據庫函數,如 DATEADD、DATEPART、NEWID、GETDATE、GETUTCDATE、LEN、SUBSTRING 等等,不一一列舉了,當然,也支持 LIKE 和 IN 語法,查看詳情
  11. 支持 SqlServer2012 分頁方式
  12. 查詢語句靈活可控,不用擔心生成的 sql 質量問題
  13. 插入數據可以自動返回自增 Id 值,會自動將自增值設置到相應的實體屬性,查看詳情
  14. 利用 lambda 表達式可以有選擇的向指定的列插入數據
  15. 利用 lambda 表達式可以有選擇的更新指定列
  16. 調用方法 TrackEntity,DbContext 會跟蹤實體屬性變化,可以像 EF 一樣只更新屬性值改變了的列,查看詳情
  17. 支持批量更新數據
  18. 支持批量刪除數據,查看詳情
  19. 支(chun)持(shu)事(fei)務(hua)
  20. 萬物皆對象,所有的一切都可以用 lambda 表達式完成
  21. 極致追求,從 DataReader 讀數據純粹調用強類型方法(GetInt32,GetInt64)獲取值,避免裝拆箱,性能超強,秒 Dapper,比肩手寫,查看詳情
  22. BUG?沒有。有的只是 NotSupportedException 和 NotImplementedException

...(此處省略 N 百個字)

憤青:LZ,夠了夠了,少吹點會死?
好好,說完特性,咱們來談談缺點。
呃...嗯...呃...缺點?等你來發現~
(以上書寫風格以及右下角推薦框懸浮CSS山寨園友[陌城&心靈捕手]的博客,希望陌城大大看到了不要介意哈)

上周在群里看到一張有關 .NET Core 的圖,貼來讓大家高興高興:

NETCoreP

結語

Chloe 的革命尚未成功,目前只支持 SqlServer 和 MySql,LZ 會繼續努力。接下來的發展目標是支持 SQLite,敬請期待!

Chloe.ORM 完全開源,遵循 Apache2.0 協議,托管於 GitHub,地址:https://github.com/shuxinqin/Chloe

相關介紹:http://www.cnblogs.com/so9527/p/5636216.html
性能測試:
http://www.cnblogs.com/so9527/p/5674498.html

ps:LZ 初生牛犢,涉世未深,年少無知,有點兒狂妄自大,望各位口下、手下、鍵盤下留情,不要太當真,在下跪謝了!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM