LFlow/LFlow.Base/Utils/CodeFirst.cs

45 lines
984 B
C#

using SqlSugar;
using System.Collections.Concurrent;
namespace LFlow.Base.Utils;
/// <summary>
/// CodeFirst
/// </summary>
public static class CodeFirst
{
/// <summary>
/// 类型集合
/// </summary>
private static readonly ConcurrentBag<Type> _types = [];
/// <summary>
/// 添加类型
/// </summary>
/// <param name="type"></param>
public static void AddType(Type type)
{
_types.Add(type);
}
/// <summary>
/// 初始化表
/// </summary>
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");
}
}
/// <summary>
/// 初始化数据库种子
/// </summary>
internal static void InitDBSeed()
{
//TODO: Seed data
}
}