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
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 = 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;
        }
 
 
 
 
    }
}