From fab35da3e1218a329e4acbe71e8d333c1dcbcadd Mon Sep 17 00:00:00 2001
From: qwj <qwjzorro@163.com>
Date: 星期一, 21 八月 2023 09:25:47 +0800
Subject: [PATCH] 资质管理
---
DocumentServiceAPI.Core/DbContext.cs | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 110 insertions(+), 1 deletions(-)
diff --git a/DocumentServiceAPI.Core/DbContext.cs b/DocumentServiceAPI.Core/DbContext.cs
index 235a7fe..9c98cfa 100644
--- a/DocumentServiceAPI.Core/DbContext.cs
+++ b/DocumentServiceAPI.Core/DbContext.cs
@@ -1,6 +1,16 @@
-锘縰sing Furion;
+锘縰sing DocumentServiceAPI.Enum;
+using DocumentServiceAPI.Utility;
+using Furion;
+using Furion.Logging;
+using Furion.Logging.Extensions;
+using Microsoft.AspNetCore.Builder;
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
using SqlSugar;
+using System;
using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
namespace DocumentServiceAPI.Core;
@@ -18,5 +28,104 @@
, db =>
{
// 杩欓噷閰嶇疆鍏ㄥ眬浜嬩欢锛屾瘮濡傛嫤鎴墽琛� SQL
+
+
});
+ public static void AddSqlsugarSetup(this IServiceCollection services)
+ {
+ var configConnection = App.GetConfig<List<ConnectionConfig>>("ConnectionConfigs");
+
+
+
+ services.AddSingleton<ISqlSugarClient>(s =>
+ {
+ SqlSugarScope sqlSugar = new SqlSugarScope(configConnection,
+ db =>
+ {
+ db.CurrentConnectionConfig.ConfigureExternalServices = new ConfigureExternalServices()
+ {
+ //鍒ゆ柇鏄惁寮�鍚痳edis璁剧疆浜岀骇缂撳瓨鏂瑰紡
+ DataInfoCacheService = new SqlSugarRedisCache(),
+ //妯″瀷瀹氫箟涓� int?鍙锋椂鑷姩涓哄彲绌�
+ EntityService = (c, p) =>
+ {
+ /***楂樼増C#鍐欐硶***/
+ //鏀寔string?鍜宻tring
+ if (p.IsPrimarykey == false && new NullabilityInfoContext()
+ .Create(c).WriteState is NullabilityState.Nullable)
+ {
+ p.IsNullable = true;
+ }
+ }
+
+ };
+ db.Aop.OnLogExecuting = (sql, pars) =>
+ {
+ Console.WriteLine(sql);//杈撳嚭sql,鏌ョ湅鎵цsql聽鎬ц兘鏃犲奖鍝�
+
+
+ //鑾峰彇鍘熺敓SQL鎺ㄨ崘聽5.1.4.63聽聽鎬ц兘OK
+ //UtilMethods.GetNativeSql(sql,pars)
+
+ //鑾峰彇鏃犲弬鏁板寲SQL聽瀵规�ц兘鏈夊奖鍝嶏紝鐗瑰埆澶х殑SQL鍙傛暟澶氱殑锛岃皟璇曚娇鐢�
+ //UtilMethods.GetSqlString(DbType.SqlServer,sql,pars)
+
+
+ };
+ db.CurrentConnectionConfig.MoreSettings = new ConnMoreSettings()
+ {
+ //鎵�鏈� 澧炪�佸垹 銆佹敼 浼氳嚜鍔ㄨ皟鐢�.RemoveDataCache()娓呯悊浜岀骇缂撳瓨
+ IsAutoRemoveDataCache = true
+ };
+ db.Aop.OnError = (exp) =>
+ {
+ $"鏁版嵁搴撴墽琛岄敊璇簡{exp}".LogInformation();
+ // NlogUtil.WriteFileLog(NLog.LogLevel.Error, LogType.Other, "SqlSugar", "鎵цSQL閿欒浜嬩欢", exp);
+ };
+
+ //鍗曚緥鍙傛暟閰嶇疆锛屾墍鏈変笂涓嬫枃鐢熸晥
+ //db.Aop.OnLogExecuting = (sql, pars) =>
+ //{
+ // //鑾峰彇浣淚OC浣滅敤鍩熷璞�
+ // // var appServive = s.GetService<IHttpContextAccessor>();
+ // // var obj = appServive?.HttpContext?.RequestServices.GetService<Log>();
+ // // Console.WriteLine("AOP" + obj.GetHashCode());
+ //};
+ });
+ return sqlSugar;
+ });
+ }
+
+ /// <summary>
+ /// 鏍规嵁鍛藉悕绌洪棿鍜屾暟鎹簱杩炴帴key濉〃
+ /// 娉ㄦ剰锛屽彧鏈夌户鎵夸簡ezBaseModel 鐨勬ā鍨嬫墠浼氬垱寤�
+ /// </summary>
+ /// <param name="app"></param>
+ /// <param name="ConfigId">閰嶇疆搴撳悕</param>
+ /// <param name="ModeProjectName"></param>
+ public static void DbCodeFirst(this IApplicationBuilder app, string ModeProjectName, string? Modenamespace = null, string? ConfigId = null)
+ {
+
+ var _db = app.ApplicationServices.GetService<ISqlSugarClient>();
+ //鍒囨崲鏁版嵁搴�
+ if (!string.IsNullOrEmpty(ConfigId))
+ _db.AsTenant().ChangeDatabase(ConfigId);
+
+ //寤哄簱
+ _db.DbMaintenance.CreateDatabase();
+ Type[]? types = UtilityFun.GetAllAssembly().Where(x => x.FullName.Contains(ModeProjectName + ",")).FirstOrDefault()?.GetTypes().WhereIF(!string.IsNullOrEmpty(Modenamespace), name => name.FullName.Contains(Modenamespace + ".")).ToArray().Where(x => x.IsSubclassOf(typeof(BaseModel))).ToArray();
+
+ _db.CodeFirst.InitTables(types);//鏍规嵁types鍒涘缓琛�
+
+ }
+ public static void DbCodeFirst(this IApplicationBuilder app, Type Obj, string? ConfigId = null)
+ {
+ var _db = app.ApplicationServices.GetService<ISqlSugarClient>();
+ //鍒囨崲鏁版嵁搴�
+ if (!string.IsNullOrEmpty(ConfigId))
+ _db.AsTenant().ChangeDatabase(ConfigId);
+ //寤哄簱
+ _db.DbMaintenance.CreateDatabase();
+ _db.CodeFirst.InitTables(Obj);//鏍规嵁types鍒涘缓琛�
+ }
}
--
Gitblit v1.9.1