[開源] .NET數據庫ORM類庫 Insql


介紹

新年之際,給大家介紹個我自己開發的ORM類庫Insql。TA是一個輕量級的.NET ORM類庫 . 對象映射基於Dapper , Sql配置靈感來自於Mybatis。簡單優雅性能是TA的追求。

項目首頁:https://rainrcn.github.io/insql

閑聊

以下可跳過😄

  • 自己為什么會開發Insql?
  1. 最初的自己一樣是從寫最基本的Sql代碼來訪問數據庫
    進而我們發現查詢出的數據與保存的數據通常都是實體對象,而還需要跨不同類型數據庫的需要。
  2. 這時ORM就成為了我們的工具。在使用ORM和Linq的出現讓我迫切希望找到一款好用的支持Linq的ORM框架。這個過程中使用了微軟的EntityFramework,還有各種同僚自己開發的ORM,有很多不錯的作品。自己也用了很多。當然在這里面我的評判標准就是性能優先,無需中間緩存層。操作能以最直接的方式直達數據庫。在Linq的支持上當然也需要豐富些。
  3. 我以為這就是我的歸宿,可是Linq只能解決不同類型數據庫的共性問題,有些ORM很難做到充分利用各個數據庫的特性,例如獨特的類型和獨特的方法,並且將Linq轉為Sql的支持能力也各個類庫不相同。當然不要告訴我自己遇到那種問題時再寫原生SQL.我盡可能希望我使用工具時簡單統一,不要有負擔存在。
  4. 直到我開發Java項目時,遇到了Mybatis。可以說真的很好用。它以XML配置SQL的方式,自己可以自由靈活的寫語句,當然數據庫的獨有方法特性都能使用。但是在dotnet core上我沒有找到類似好用的組件。於是就有了Insql。
  • 如何設計Insql?
    整體功能架構就以下兩塊
  1. 語句解析
    首先先加載xxx.insql.xml配置,加載方式支持擴展,目前實現以程序集嵌入式文件方式加載。
    解析各種配置節點元素,最終生成可直接執行的sql語句和sql參數。
  2. 對象映射
    在保存和查詢時都需要實體對象的參與,這里對象映射就提供類這個功能。目前也有很多對象映射類庫,我們這里直接使用Dapper。輪子就不重復造了。

正題

2. 安裝

Package Nuget Stable Downloads
Insql Insql Insql
Insql.MySql Insql.MySql Insql.MySql
Insql.Oracle Insql.Oracle Insql.Oracle
Insql.PostgreSql Insql.PostgreSql Insql.PostgreSql
Insql.Sqlite Insql.Sqlite Insql.Sqlite

3. 特性

  • 支持 DotNet Core 2.0+ & DotNet Framework 4.6.1+
  • 支持依賴注入系統
  • 類似 MyBatis sql xml 配置語法
  • 多數據庫支持
  • 高性能
  • 靈活擴展性
  • 使用簡單直觀

當前源碼托管在 Github,或者國內的 碼雲

@謝謝大家支持!!


免責聲明!

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



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