1、官方中文文檔
https://www.donet5.com/home/Doc
2、引入NuGet包
3、數據庫訪問類
using SqlSugar; using System.Configuration; using log4net; namespace Dao { public class SqlGenerator { private static readonly ILog log = LogManager.GetLogger(typeof(SqlGenerator)); public static string ConnectionString = ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString; private static SqlSugarClient sqlSugarClient = null; private static readonly object lockHelper = new object(); /// <summary> /// 連接Oracle數據庫 /// </summary> /// <returns></returns> public static SqlSugarClient GetOracleInstance() { if (sqlSugarClient == null) { lock (lockHelper) {
//此寫法,官方不推薦 //單例模式,避免多次實例化 if (sqlSugarClient == null) { sqlSugarClient = new SqlSugarClient(new ConnectionConfig() { //數據庫類型 DbType = DbType.Oracle, //數據庫連接字符串 ConnectionString = ConnectionString, InitKeyType = InitKeyType.Attribute, //是否自動關閉連接 IsAutoCloseConnection = true, AopEvents = new AopEvents { //記錄執行SQL和參數 OnLogExecuting = (sql, p) => { log.Debug(sql); } } }); } } } return sqlSugarClient; }
//官方建議 不單例 SqlSugarClient 對象 public SqlSugarClient GetSQLServerInstance() { return new SqlSugarClient(new ConnectionConfig() { DbType = DbType.SqlServer, ConnectionString = ConnectionString, InitKeyType = InitKeyType.Attribute, IsAutoCloseConnection = true, AopEvents = new AopEvents { OnLogExecuting = (sql, p) => { log.Debug(sql); } } }); } } }
4、使用
//獲取數據訪問類對象 SqlSugarClient sqlServerDB = SqlGenerator.GetSQLServerInstance(); //調用查詢方法 sqlServerDB.Ado.SqlQuery<CommonTable>(sql).ToList();
5、增、刪、改 及查詢更多更詳細的方法,請參照官方幫助文檔
https://www.donet5.com/home/Doc
6、在sqlSugar的幫助類中盡量避免 單例 SqlSugarClient ,也就是上述代碼中的 紅色部分,官方是不建議使用單例對象的,具體原因是:
偶發性錯誤 - SqlSugar 5x - .NET果糖網 (donet5.com)
在多線程下,可能會引發異常。