namespace IStation.DAL { internal class ConfigHelper { public static string ConnectionString { get { if (string.IsNullOrEmpty(_connectionString)) { var dbName = "Db4Schedule.db"; var directory = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Data"); var filePath = directory + "\\" + dbName; if (!System.IO.File.Exists(filePath)) { try { SQLiteConnection.CreateFile(filePath); } catch (Exception ex) { var errMsg = $".db 文件不存在!Path:{filePath}\r\n{ex.Message}"; throw new Exception(errMsg); } } _connectionString = $"DataSource={filePath}"; } return _connectionString; } } private static string _connectionString; static SqlSugarClient _client = null; public static SqlSugarClient GetSqlSugarClient() { if (_client != null) return _client; var config = new ConnectionConfig(); config.ConnectionString = "host=localhost;port=8123;user=default;password=123456;database=default"; config.IsAutoCloseConnection = true; config.DbType = SqlSugar.DbType.ClickHouse; config.InitKeyType = InitKeyType.Attribute; //config.ConfigureExternalServices = new ConfigureExternalServices() //{ // EntityService = (property, column) => // { // //除主键外都可空 // if (!column.IsPrimarykey) // { // column.IsNullable = true; // } // } //}; var db = new SqlSugarClient(config); db.Aop.OnLogExecuting = (sql, pars) => { Console.WriteLine(sql); Console.WriteLine(sql + "\r\n" + db.Utilities.SerializeObject (pars.ToDictionary(it => it.ParameterName, it => it.Value))); Console.WriteLine(); }; return db; } //public static SqlSugarClient GetSqlSugarClient() //{ // if (_client != null) // return _client; // var config = new ConnectionConfig(); // config.ConnectionString = ConnectionString; // config.IsAutoCloseConnection = true; // config.DbType = SqlSugar.DbType.Sqlite; // config.ConfigureExternalServices = new ConfigureExternalServices() // { // EntityService = (property, column) => // { // //除主键外都可空 // if (!column.IsPrimarykey) // { // column.IsNullable = true; // } // } // }; // var db = new SqlSugarClient(config); // db.Aop.OnLogExecuting = (sql, pars) => // { // Console.WriteLine(sql + "\r\n" + db.Utilities.SerializeObject // (pars.ToDictionary(it => it.ParameterName, it => it.Value))); // Console.WriteLine(); // }; // return db; //} } }