LFlow/LFlow.Base/Utils/CodeFirst.cs

45 lines
984 B
C#
Raw Normal View History

2024-10-16 11:35:05 +08:00
using SqlSugar;
2024-11-02 10:38:32 +08:00
using System.Collections.Concurrent;
2024-10-16 11:35:05 +08:00
namespace LFlow.Base.Utils;
2024-11-04 10:10:05 +08:00
/// <summary>
/// CodeFirst
/// </summary>
2024-10-16 11:35:05 +08:00
public static class CodeFirst
{
2024-11-04 10:10:05 +08:00
/// <summary>
/// 类型集合
/// </summary>
private static readonly ConcurrentBag<Type> _types = [];
/// <summary>
/// 添加类型
/// </summary>
/// <param name="type"></param>
2024-10-16 11:35:05 +08:00
public static void AddType(Type type)
{
_types.Add(type);
}
2024-11-04 10:10:05 +08:00
/// <summary>
/// 初始化表
/// </summary>
2024-10-16 11:35:05 +08:00
internal static void InitTable()
{
var logger = App.GetService<Serilog.ILogger>()!;
var db = App.GetService<ISqlSugarClient>()!;
foreach (var type in _types)
{
db.CodeFirst.InitTables(type);
logger.Information($"Init table {type.Name} success");
}
}
2024-11-04 10:10:05 +08:00
/// <summary>
/// 初始化数据库种子
/// </summary>
2024-10-16 11:35:05 +08:00
internal static void InitDBSeed()
{
//TODO: Seed data
}
}