From 918174d50137e598ec360bfc2de04b998a0df505 Mon Sep 17 00:00:00 2001 From: wintel Date: Thu, 31 Aug 2023 20:20:49 +0800 Subject: [PATCH] =?UTF-8?q?fix=20issue=20#I7XLS5=20IdentityServer=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OpenAuth.Identity/Startup.cs | 52 +++++++++++++++++++++++++++++++++--- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/OpenAuth.Identity/Startup.cs b/OpenAuth.Identity/Startup.cs index 95e5fece..87c338bf 100644 --- a/OpenAuth.Identity/Startup.cs +++ b/OpenAuth.Identity/Startup.cs @@ -14,6 +14,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using OpenAuth.App; using OpenAuth.Repository; +using SqlSugar; namespace OpenAuth.IdentityServer { @@ -76,21 +77,66 @@ namespace OpenAuth.IdentityServer var dbtypes = ((ConfigurationSection)Configuration.GetSection("AppSetting:DbTypes")).GetChildren() .ToDictionary(x => x.Key, x => x.Value); var dbType = dbtypes["OpenAuthDBContext"]; + var connectionString = Configuration.GetConnectionString("OpenAuthDBContext"); if (dbType == Define.DBTYPE_SQLSERVER) { services.AddDbContext(options => - options.UseSqlServer(Configuration.GetConnectionString("OpenAuthDBContext"))); + options.UseSqlServer(connectionString)); } else if(dbType == Define.DBTYPE_MYSQL) //mysql { services.AddDbContext(options => - options.UseMySql(Configuration.GetConnectionString("OpenAuthDBContext"),new MySqlServerVersion(new Version(8, 0, 11)))); + options.UseMySql(connectionString,new MySqlServerVersion(new Version(8, 0, 11)))); } else //oracle { services.AddDbContext(options => - options.UseOracle(Configuration.GetConnectionString("OpenAuthDBContext"), o=>o.UseOracleSQLCompatibility("11"))); + options.UseOracle(connectionString, o=>o.UseOracleSQLCompatibility("11"))); } + + services.AddScoped(s => + { + + SqlSugarClient sqlSugar; + if(dbtypes.ContainsValue(Define.DBTYPE_SQLSERVER)) + { + sqlSugar = new SqlSugarClient (new ConnectionConfig() + { + DbType = SqlSugar.DbType.SqlServer, + ConnectionString = connectionString, + IsAutoCloseConnection = true, + }); + } + else if(dbtypes.ContainsValue(Define.DBTYPE_MYSQL)) //mysql + { + sqlSugar = new SqlSugarClient (new ConnectionConfig() + { + DbType = SqlSugar.DbType.MySql, + ConnectionString = connectionString, + IsAutoCloseConnection = true, + }); + } + else if(dbtypes.ContainsValue(Define.DBTYPE_PostgreSQL)) //PostgreSQL + { + sqlSugar = new SqlSugarClient (new ConnectionConfig() + { + DbType = SqlSugar.DbType.PostgreSQL, + ConnectionString = connectionString, + IsAutoCloseConnection = true, + }); + } + else + { + sqlSugar = new SqlSugarClient (new ConnectionConfig() + { + DbType = SqlSugar.DbType.Oracle, + ConnectionString = connectionString, + IsAutoCloseConnection = true, + }); + } + + return sqlSugar; + }); }