同步操作将从 LongbowEnterprise/BootstrapAdmin 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
using Bootstrap.DataAccess.Helper;using Microsoft.AspNetCore.Hosting;using Microsoft.Extensions.Configuration;using Microsoft.Extensions.DependencyInjection;using System;using System.IO;using System.Linq;namespace Microsoft.AspNetCore.Builder{/// <summary>/// 自动生成数据库扩展操作类/// </summary>public static class AutoGenerateDatabaseExtensions{private static bool _init;private static object _locker = new object();private const string SqlFolderKey = "SqlFolder";/// <summary>/// 自动生成数据库中间件/// </summary>/// <param name="app"></param>public static IApplicationBuilder UseAutoGenerateDatabase(this IApplicationBuilder app){app.Use(async (context, next) =>{if (!_init){// 优化性能var config = context.RequestServices.GetRequiredService<IConfiguration>();var autoGenerate = config.GetValue("AutoGenerateDatabase", false);if (!autoGenerate) _init = true;if (autoGenerate){// 阻止所有线程继续往下运行,等待数据库检查lock (_locker){if (!_init){// 数据检查var dbSection = config.GetSection("DB").GetChildren().FirstOrDefault(c => c.GetValue("Enabled", false));if (dbSection != null){var folder = dbSection.GetValue(SqlFolderKey, "").ReplaceOSPlatformPath();if (!string.IsNullOrEmpty(folder)){// 判断文件夹是否存在var env = context.RequestServices.GetRequiredService<IWebHostEnvironment>();var fullFolder = Path.Combine(env.ContentRootPath, folder);if (Directory.Exists(fullFolder)){try{AutoDbHelper.EnsureCreated(fullFolder);}catch { }}}}}_init = true;}}}await next();});return app;}}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。