給各位聚聚和大大介紹一個開源項目 Expression2Sql(二)

hushi55 9年前發布 | 31K 次閱讀 開源 SQL

前一陣子給大家介紹了一個可以將Expression表達式樹解析成Transact-SQL的開源項目Expression2Sql。

簡單易用,幾分鐘即可上手使用,因為博主在設計Expression2Sql的時候就盡可能的按照Transact-SQL的語法語義風格來設計,只要調用者熟悉基本的Transact-SQL語法即可瞬間無憂開碼,大大降低了學習Expression2Sql的成本,甚至零成本。對象化操作,鏈式編程,任意組裝sql,自動生成表別名,參數化賦值,防止sql注入,支持SQLServer、MySQL、Oracle、SQLite等多數據庫,生成極度美觀的sql字符串(格式化)等諸多優點。

具體詳情可以前往此篇博文一探究竟:

《給各位聚聚和大大介紹一個開源項目 Expression2Sql》

Expression2Sql源碼托管地址: https://github.com/StrangeCity/Expression2Sql

諸多開源項目收錄: http://www.cnblogs.com/StrangeCity/p/OpenSourceProject.html


之后得到了廣大讀者的一些好評,也使得博主更有動力繼續更新下去,然后一些園友也給出了一些極具建設性的意見,也有部分園友反饋了一些bug。最近一段時間,博主也集中精力,抽出一些時間做了一次更新,本篇文章將介紹本次更 新的內容 。

一、在做形參賦值時報錯,現已解決。

二、對于括號優先級的處理,現已支持。

三、增加Insert方法

四、提供靜態類和實例類的兩種調用方式

Expression2Sql組件的核心對象ExpressionToSql是實例類,調用的時候還得對象實例化,然后通過構造函數注入數據庫sql語法分析器。但是博主考慮到很多時候,工作或學習當中,一般單數據庫類型居多,所以使用靜態類來調用,會非常的方便快捷。于是博主拋磚引玉,封裝了基于SQLServer、MySQL、Oracle、SQLite數據庫的的靜態類。當然調用方可以借鑒這些靜態類,自行封裝這4種常用數據庫之外的靜態類。

 1 ExpressionToSql<UserInfo> userInfoSql = new ExpressionToSql<UserInfo>(new MySQLSqlParser());
 2             Printf(
 3                     userInfoSql.Select().Where(u => u.Id != 1),
 4                     "查詢單表,帶where條件,實例類"
 5             );
 6 
 7 
 8             Printf(
 9                ExpressionToSqlSQLServer.Select<UserInfo>().
10                                         Where(u => u.Name == "張三"),
11                "SQLServer靜態類"
12             );

來自: http://www.cnblogs.com/StrangeCity/p/5142560.html

 本文由用戶 hushi55 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!