ningshuxia
2024-05-24 7a89858cd237c4fc5d0c952804d35fcaa62be57d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
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;
        //}
 
 
 
    }
}