diff --git a/Infrastructure/App/App.cs b/Infrastructure/App/App.cs
index 2806111..663e8ef 100644
--- a/Infrastructure/App/App.cs
+++ b/Infrastructure/App/App.cs
@@ -10,7 +10,7 @@ namespace Infrastructure
///
/// 服务提供器
///
- public static IServiceProvider ServiceProvider => HttpContext?.RequestServices ?? InternalApp.InternalServices.BuildServiceProvider();
+ public static IServiceProvider ServiceProvider => HttpContext?.RequestServices ?? InternalApp.ServiceProvider;
///
/// 获取请求上下文
///
diff --git a/Infrastructure/Helper/AssemblyUtils.cs b/Infrastructure/Helper/AssemblyUtils.cs
new file mode 100644
index 0000000..3934851
--- /dev/null
+++ b/Infrastructure/Helper/AssemblyUtils.cs
@@ -0,0 +1,36 @@
+using Microsoft.Extensions.DependencyModel;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Infrastructure.Helper
+{
+ public static class AssemblyUtils
+ {
+ ///
+ /// 获取应用中的所有程序集
+ ///
+ ///
+ public static IEnumerable GetAssemblies()
+ {
+ var compilationLibrary = DependencyContext.Default
+ .CompileLibraries
+ .Where(x => !x.Serviceable && x.Type == "project")
+ .ToList();
+ return compilationLibrary.Select(p => Assembly.Load(new AssemblyName(p.Name)));
+ }
+
+ ///
+ /// 获取应用中的所有Type
+ ///
+ ///
+ public static IEnumerable GetAllTypes()
+ {
+ var assemblies = GetAssemblies();
+ return assemblies.SelectMany(p => p.GetTypes());
+ }
+ }
+}
diff --git a/Infrastructure/Infrastructure.csproj b/Infrastructure/Infrastructure.csproj
index a577cb4..998c34b 100644
--- a/Infrastructure/Infrastructure.csproj
+++ b/Infrastructure/Infrastructure.csproj
@@ -11,6 +11,7 @@
+
diff --git a/Infrastructure/InternalApp.cs b/Infrastructure/InternalApp.cs
index f0d116e..78e24d9 100644
--- a/Infrastructure/InternalApp.cs
+++ b/Infrastructure/InternalApp.cs
@@ -1,6 +1,7 @@
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
+using System;
namespace Infrastructure
{
@@ -9,12 +10,12 @@ namespace Infrastructure
///
/// 应用服务
///
- public static IServiceCollection InternalServices;
+ public static IServiceProvider ServiceProvider;
///
/// 全局配置构建器
///
- public static IConfigurationBuilder ConfigurationBuilder;
+ //public static IConfigurationBuilder ConfigurationBuilder;
///
/// 获取Web主机环境
@@ -24,6 +25,6 @@ namespace Infrastructure
///
/// 获取泛型主机环境
///
- public static IHostEnvironment HostEnvironment;
+ //public static IHostEnvironment HostEnvironment;
}
}
diff --git a/Infrastructure/Startups/HostBuilderExtensions.cs b/Infrastructure/Startups/HostBuilderExtensions.cs
deleted file mode 100644
index d183ca2..0000000
--- a/Infrastructure/Startups/HostBuilderExtensions.cs
+++ /dev/null
@@ -1,53 +0,0 @@
-using Microsoft.AspNetCore.Hosting;
-using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.Hosting;
-
-namespace Infrastructure.Startups
-{
- ///
- /// Program.cs里面的HostBuilder扩展
- ///
- public static class HostBuilderExtensions
- {
- ///
- /// Web 主机注入
- ///
- /// Web主机构建器
- /// 外部程序集名称,如果HostingStartup存在多个程序集中可以使用;分隔,比如HostStartupLib;HostStartupLib2
- /// IWebHostBuilder
- public static IWebHostBuilder Init(this IWebHostBuilder hostBuilder, string assemblyName)
- {
- hostBuilder.UseSetting(WebHostDefaults.HostingStartupAssembliesKey, assemblyName);
- return hostBuilder;
- }
-
- ///
- /// 初始化程序扩展
- ///
- ///
- public static void UseAppStartup(this IWebHostBuilder hostBuilder)
- {
- // 自动装载配置
- hostBuilder.ConfigureAppConfiguration((hostingContext, config) =>
- {
- // 存储环境对象
- InternalApp.HostEnvironment = (IHostEnvironment)hostingContext.HostingEnvironment;
-
- // 加载配置
- //InternalApp.AddConfigureFiles(config, InternalApp.WebHostEnvironment);
- });
- // 自动注入 AddApp() 服务
- hostBuilder.ConfigureServices((services) =>
- {
- // 注册 Startup 过滤器
- //services.AddTransient();
-
- // 添加全局配置和存储服务提供器
- InternalApp.InternalServices = services;
-
- // 初始化应用服务
- //services.AddApp();
- });
- }
- }
-}
diff --git a/Infrastructure/Startups/HostingStartup.cs b/Infrastructure/Startups/HostingStartup.cs
deleted file mode 100644
index 076543d..0000000
--- a/Infrastructure/Startups/HostingStartup.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using Infrastructure.Startups;
-using Microsoft.AspNetCore.Hosting;
-
-//通过HostingStartup指定要启动的类型
-[assembly: HostingStartup(typeof(HostingStartup))]
-
-namespace Infrastructure.Startups
-{
- public class HostingStartup : IHostingStartup
- {
- public void Configure(IWebHostBuilder builder)
- {
- // 自动装载配置
- builder.ConfigureAppConfiguration((hostingContext, config) =>
- {
- // 存储环境对象
- //InternalApp.HostEnvironment = hostingContext.HostingEnvironment;
- //InternalApp.HostEnvironment = (Microsoft.Extensions.Hosting.IHostEnvironment)hostingContext.HostingEnvironment;
- // 加载配置
- //InternalApp.AddConfigureFiles(config, InternalApp.WebHostEnvironment);
- InternalApp.ConfigurationBuilder = config;
- });
-
- // 自动注入 AddApp() 服务
- builder.ConfigureServices(services =>
- {
- // 注册 Startup 过滤器
- //services.AddTransient();
-
- // 添加全局配置和存储服务提供器
- InternalApp.InternalServices = services;
- });
-
- }
- }
-}
diff --git a/ZR.Admin.WebApi/Extensions/DbExtension.cs b/ZR.Admin.WebApi/Extensions/DbExtension.cs
index 8c1eeaf..cbf3934 100644
--- a/ZR.Admin.WebApi/Extensions/DbExtension.cs
+++ b/ZR.Admin.WebApi/Extensions/DbExtension.cs
@@ -1,10 +1,12 @@
using Infrastructure;
+using Infrastructure.Helper;
using Microsoft.Extensions.Configuration;
using SqlSugar;
using SqlSugar.IOC;
using System;
using System.Collections.Generic;
using System.Linq;
+using System.Reflection;
using ZR.Admin.WebApi.Framework;
using ZR.Model.System;
@@ -24,6 +26,9 @@ namespace ZR.Admin.WebApi.Extensions
//仅本人数据权限
public static string DATA_SCOPE_SELF = "5";
+
+
+
public static void AddDb(IConfiguration Configuration)
{
string connStr = Configuration.GetConnectionString("conn_db");
@@ -83,6 +88,18 @@ namespace ZR.Admin.WebApi.Extensions
};
#endregion
});
+
+ }
+
+ public static void InitDb(this IServiceProvider service)
+ {
+ var db = DbScoped.SugarScope;
+ db.DbMaintenance.CreateDatabase();
+ //db.CodeFirst.
+ var baseType = typeof(SysBase);
+
+ var entityes = AssemblyUtils.GetAllTypes().Where(p => !p.IsAbstract && p != baseType && /*p.IsAssignableTo(baseType) && */p.GetCustomAttribute()!=null).ToArray();
+ db.CodeFirst.SetStringDefaultLength(512).InitTables(entityes);
}
///
diff --git a/ZR.Admin.WebApi/Extensions/SwaggerExtension.cs b/ZR.Admin.WebApi/Extensions/SwaggerExtension.cs
index 94cf9f0..6df2ab2 100644
--- a/ZR.Admin.WebApi/Extensions/SwaggerExtension.cs
+++ b/ZR.Admin.WebApi/Extensions/SwaggerExtension.cs
@@ -39,7 +39,7 @@ namespace ZR.Admin.WebApi.Extensions
public static void AddSwaggerConfig(this IServiceCollection services)
{
if (services == null) throw new ArgumentNullException(nameof(services));
- IWebHostEnvironment hostEnvironment = App.GetRequiredService();
+ //IWebHostEnvironment hostEnvironment = App.GetRequiredService();
services.AddSwaggerGen(c =>
{
@@ -52,7 +52,7 @@ namespace ZR.Admin.WebApi.Extensions
try
{
//添加文档注释
- c.IncludeXmlComments(Path.Combine(hostEnvironment.ContentRootPath, "ZRAdmin.xml"), true);
+ c.IncludeXmlComments("ZRAdmin.xml", true);
}
catch (Exception ex)
{
diff --git a/ZR.Admin.WebApi/Extensions/TasksExtension.cs b/ZR.Admin.WebApi/Extensions/TasksExtension.cs
index 018a19c..62b4387 100644
--- a/ZR.Admin.WebApi/Extensions/TasksExtension.cs
+++ b/ZR.Admin.WebApi/Extensions/TasksExtension.cs
@@ -35,7 +35,7 @@ namespace ZR.Admin.WebApi.Extensions
{
//var _tasksQzService = (ISysTasksQzService)App.GetRequiredService(typeof(ISysTasksQzService));
- ITaskSchedulerServer _schedulerServer = App.GetRequiredService();
+ ITaskSchedulerServer _schedulerServer = app.ApplicationServices.GetRequiredService();
//var tasks = _tasksQzService.GetList(m => m.IsStart);
var tasks = SqlSugar.IOC.DbScoped.SugarScope.Queryable().Where(m => m.IsStart).ToList();
diff --git a/ZR.Admin.WebApi/Program.cs b/ZR.Admin.WebApi/Program.cs
index 7eba8ac..bd518f9 100644
--- a/ZR.Admin.WebApi/Program.cs
+++ b/ZR.Admin.WebApi/Program.cs
@@ -55,7 +55,7 @@ builder.Services.AddAuthentication(options =>
o.TokenValidationParameters = JwtUtil.ValidParameters();
});
-InternalApp.InternalServices = builder.Services;
+//InternalApp.InternalServices = builder.Services;
builder.Services.AddAppService();
builder.Services.AddSingleton(new AppSettings(builder.Configuration));
//开启计划任务
@@ -81,7 +81,8 @@ builder.Services.AddMvc(options =>
builder.Services.AddSwaggerConfig();
var app = builder.Build();
-
+InternalApp.ServiceProvider = app.Services;
+app.Services.InitDb();
app.UseSwagger();
//使可以多次多去body内容
diff --git a/ZR.Admin.WebApi/ZR.Admin.WebApi.csproj b/ZR.Admin.WebApi/ZR.Admin.WebApi.csproj
index 8908b6f..5e21236 100644
--- a/ZR.Admin.WebApi/ZR.Admin.WebApi.csproj
+++ b/ZR.Admin.WebApi/ZR.Admin.WebApi.csproj
@@ -22,15 +22,15 @@
-
+
-
+
-
-
+
+
-
+
diff --git a/ZR.CodeGenerator/ZR.CodeGenerator.csproj b/ZR.CodeGenerator/ZR.CodeGenerator.csproj
index bce93a2..4734295 100644
--- a/ZR.CodeGenerator/ZR.CodeGenerator.csproj
+++ b/ZR.CodeGenerator/ZR.CodeGenerator.csproj
@@ -12,6 +12,6 @@
-
+
diff --git a/ZR.Common/ZR.Common.csproj b/ZR.Common/ZR.Common.csproj
index d376c8c..c987ab6 100644
--- a/ZR.Common/ZR.Common.csproj
+++ b/ZR.Common/ZR.Common.csproj
@@ -6,9 +6,9 @@
-
-
-
+
+
+
diff --git a/ZR.Model/System/Generate/GenTable.cs b/ZR.Model/System/Generate/GenTable.cs
index 482ff3e..ab012da 100644
--- a/ZR.Model/System/Generate/GenTable.cs
+++ b/ZR.Model/System/Generate/GenTable.cs
@@ -72,7 +72,7 @@ namespace ZR.Model.System.Generate
///
/// 其他生成选项
///
- [SqlSugar.SugarColumn(IsJson = true)]
+ [SqlSugar.SugarColumn(IsJson = true, ColumnDataType = "nvarchar(4000)")]
public Options Options { get; set; }
#region 表额外字段
diff --git a/ZR.Model/ZR.Model.csproj b/ZR.Model/ZR.Model.csproj
index 7e96b51..4d1cae2 100644
--- a/ZR.Model/ZR.Model.csproj
+++ b/ZR.Model/ZR.Model.csproj
@@ -5,9 +5,9 @@
-
+
-
+
diff --git a/ZR.Repository/ZR.Repository.csproj b/ZR.Repository/ZR.Repository.csproj
index d55b378..7aaa791 100644
--- a/ZR.Repository/ZR.Repository.csproj
+++ b/ZR.Repository/ZR.Repository.csproj
@@ -10,11 +10,11 @@
-
+
-
+
diff --git a/ZR.Tasks/ZR.Tasks.csproj b/ZR.Tasks/ZR.Tasks.csproj
index d5495fe..e1ad408 100644
--- a/ZR.Tasks/ZR.Tasks.csproj
+++ b/ZR.Tasks/ZR.Tasks.csproj
@@ -6,7 +6,7 @@
-
+