|
@@ -15,6 +15,7 @@ using ZhonTai.Admin.Core.Auth;
|
|
|
using System.IO;
|
|
|
using ZhonTai.Common.Helpers;
|
|
|
using ZhonTai.Admin.Core.Db.Data;
|
|
|
+using static Org.BouncyCastle.Math.EC.ECCurve;
|
|
|
|
|
|
namespace ZhonTai.Admin.Core.Db;
|
|
|
|
|
@@ -70,8 +71,13 @@ public class DbHelper
|
|
|
/// <returns></returns>
|
|
|
public static Type[] GetEntityTypes(AppConfig appConfig)
|
|
|
{
|
|
|
- Assembly[] assemblies = DependencyContext.Default.RuntimeLibraries
|
|
|
- .Where(a => appConfig.AssemblyNames.Contains(a.Name) || a.Name == "ZhonTai.Admin")
|
|
|
+ if(!(appConfig.AssemblyNames?.Length > 0))
|
|
|
+ {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ Assembly[] assemblies = DependencyContext.Default.RuntimeLibraries
|
|
|
+ .Where(a => appConfig.AssemblyNames.Contains(a.Name))
|
|
|
.Select(o => Assembly.Load(new AssemblyName(o.Name))).ToArray();
|
|
|
|
|
|
var entityTypes = new List<Type>();
|
|
@@ -219,6 +225,7 @@ public class DbHelper
|
|
|
// 同步结构
|
|
|
var dbType = dbConfig.Type.ToString();
|
|
|
Console.WriteLine($"\r\n {(msg.NotNull() ? msg : $"sync {dbType} structure")} started");
|
|
|
+
|
|
|
if (dbConfig.Type == DataType.Oracle)
|
|
|
{
|
|
|
db.CodeFirst.IsSyncStructureToUpper = true;
|
|
@@ -226,8 +233,8 @@ public class DbHelper
|
|
|
|
|
|
//获得指定程序集表实体
|
|
|
var entityTypes = GetEntityTypes(appConfig);
|
|
|
-
|
|
|
db.CodeFirst.SyncStructure(entityTypes);
|
|
|
+
|
|
|
Console.WriteLine($" {(msg.NotNull() ? msg : $"sync {dbType} structure")} succeed");
|
|
|
}
|
|
|
|
|
@@ -318,22 +325,25 @@ public class DbHelper
|
|
|
{
|
|
|
Console.WriteLine("\r\n sync data started");
|
|
|
|
|
|
- db.Aop.AuditValue += SyncDataAuditValue;
|
|
|
+ if (appConfig.AssemblyNames?.Length > 0)
|
|
|
+ {
|
|
|
+ db.Aop.AuditValue += SyncDataAuditValue;
|
|
|
|
|
|
- Assembly[] assemblies = DependencyContext.Default.RuntimeLibraries
|
|
|
- .Where(a => appConfig.AssemblyNames.Contains(a.Name) || a.Name == "ZhonTai.Admin")
|
|
|
- .Select(o => Assembly.Load(new AssemblyName(o.Name))).ToArray();
|
|
|
+ Assembly[] assemblies = DependencyContext.Default.RuntimeLibraries
|
|
|
+ .Where(a => appConfig.AssemblyNames.Contains(a.Name))
|
|
|
+ .Select(o => Assembly.Load(new AssemblyName(o.Name))).ToArray();
|
|
|
|
|
|
- List<ISyncData> syncDatas = assemblies.Select(assembly => assembly.GetTypes()
|
|
|
- .Where(x => typeof(ISyncData).GetTypeInfo().IsAssignableFrom(x.GetTypeInfo()) && x.GetTypeInfo().IsClass && !x.GetTypeInfo().IsAbstract))
|
|
|
- .SelectMany(registerTypes => registerTypes.Select(registerType => (ISyncData)Activator.CreateInstance(registerType))).ToList();
|
|
|
+ List<ISyncData> syncDatas = assemblies.Select(assembly => assembly.GetTypes()
|
|
|
+ .Where(x => typeof(ISyncData).GetTypeInfo().IsAssignableFrom(x.GetTypeInfo()) && x.GetTypeInfo().IsClass && !x.GetTypeInfo().IsAbstract))
|
|
|
+ .SelectMany(registerTypes => registerTypes.Select(registerType => (ISyncData)Activator.CreateInstance(registerType))).ToList();
|
|
|
|
|
|
- foreach (ISyncData syncData in syncDatas)
|
|
|
- {
|
|
|
- await syncData.SyncDataAsync(db, dbConfig, appConfig);
|
|
|
- }
|
|
|
+ foreach (ISyncData syncData in syncDatas)
|
|
|
+ {
|
|
|
+ await syncData.SyncDataAsync(db, dbConfig, appConfig);
|
|
|
+ }
|
|
|
|
|
|
- db.Aop.AuditValue -= SyncDataAuditValue;
|
|
|
+ db.Aop.AuditValue -= SyncDataAuditValue;
|
|
|
+ }
|
|
|
|
|
|
Console.WriteLine(" sync data succeed\r\n");
|
|
|
}
|
|
@@ -356,17 +366,20 @@ public class DbHelper
|
|
|
{
|
|
|
Console.WriteLine("\r\n generate data started");
|
|
|
|
|
|
- Assembly[] assemblies = DependencyContext.Default.RuntimeLibraries
|
|
|
- .Where(a => appConfig.AssemblyNames.Contains(a.Name) || a.Name == "ZhonTai.Admin")
|
|
|
- .Select(o => Assembly.Load(new AssemblyName(o.Name))).ToArray();
|
|
|
+ if (appConfig.AssemblyNames?.Length > 0)
|
|
|
+ {
|
|
|
+ Assembly[] assemblies = DependencyContext.Default.RuntimeLibraries
|
|
|
+ .Where(a => appConfig.AssemblyNames.Contains(a.Name))
|
|
|
+ .Select(o => Assembly.Load(new AssemblyName(o.Name))).ToArray();
|
|
|
|
|
|
- List<IGenerateData> generateDatas = assemblies.Select(assembly => assembly.GetTypes()
|
|
|
- .Where(x => typeof(IGenerateData).GetTypeInfo().IsAssignableFrom(x.GetTypeInfo()) && x.GetTypeInfo().IsClass && !x.GetTypeInfo().IsAbstract))
|
|
|
- .SelectMany(registerTypes => registerTypes.Select(registerType => (IGenerateData)Activator.CreateInstance(registerType))).ToList();
|
|
|
+ List<IGenerateData> generateDatas = assemblies.Select(assembly => assembly.GetTypes()
|
|
|
+ .Where(x => typeof(IGenerateData).GetTypeInfo().IsAssignableFrom(x.GetTypeInfo()) && x.GetTypeInfo().IsClass && !x.GetTypeInfo().IsAbstract))
|
|
|
+ .SelectMany(registerTypes => registerTypes.Select(registerType => (IGenerateData)Activator.CreateInstance(registerType))).ToList();
|
|
|
|
|
|
- foreach (IGenerateData generateData in generateDatas)
|
|
|
- {
|
|
|
- await generateData.GenerateDataAsync(db, appConfig);
|
|
|
+ foreach (IGenerateData generateData in generateDatas)
|
|
|
+ {
|
|
|
+ await generateData.GenerateDataAsync(db, appConfig);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
Console.WriteLine(" generate data succeed\r\n");
|