diff --git a/LFlow/Utils/CodeFirst.cs b/LFlow/Utils/CodeFirst.cs index 1324f6c..fd1d491 100644 --- a/LFlow/Utils/CodeFirst.cs +++ b/LFlow/Utils/CodeFirst.cs @@ -1,25 +1,32 @@ using System; +using System.Collections.Concurrent; using System.Net; +using Serilog; +using SqlSugar; namespace LFlow.Base.Utils; public static class CodeFirst { - private static List _tableTypes = new List(); - - internal static void RegisterTable(Type type) + // 线程安全的类型列表 + private static readonly ConcurrentBag _types = new(); + public static void AddType(Type type) { - if (_tableTypes.Contains(type)) + _types.Add(type); + } + internal static void InitTable() + { + var logger = App.GetService()!; + var db = App.GetService()!; + foreach (var type in _types) { - return; - } - else - { - _tableTypes.Add(type); + db.CodeFirst.InitTables(type); + logger.Information($"Init table {type.Name} success"); } } - internal static void DBSeed() - { + internal static void InitDBSeed() + { + //TODO: Seed data } }