From b6a2707097ef1e2adbbe26ccc849d34b68983997 Mon Sep 17 00:00:00 2001 From: wintel Date: Sun, 23 Feb 2025 21:11:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D.NET=20bool=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E8=BD=AC=E6=8D=A2=E4=B8=BApgSql=20int2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OpenAuth.App/Test/TestBase.cs | 15 +++++++++++++++ OpenAuth.Identity/Startup.cs | 22 ++++++++++++++++------ OpenAuth.Mvc/Startup.cs | 16 ++++++++++++++++ OpenAuth.Mvc/appsettings.json | 6 +++--- OpenAuth.Repository/Test/TestBase.cs | 15 +++++++++++++++ OpenAuth.WebApi/Startup.cs | 18 +++++++++++++++++- 6 files changed, 82 insertions(+), 10 deletions(-) diff --git a/OpenAuth.App/Test/TestBase.cs b/OpenAuth.App/Test/TestBase.cs index 0614968d..68c2260c 100644 --- a/OpenAuth.App/Test/TestBase.cs +++ b/OpenAuth.App/Test/TestBase.cs @@ -79,6 +79,21 @@ namespace OpenAuth.App.Test ConnectionString = connectionString, IsAutoCloseConnection = true }); + // 配置bool类型转换为smallint + sqlSugar.Aop.OnExecutingChangeSql = (sql, parameters) => + { + foreach (var param in parameters) + { + if (param.Value is bool boolValue) + { + param.DbType = System.Data.DbType.Int16; + // 将 bool 转换为 smallint + param.Value = boolValue ? (short)1 : (short)0; + } + } + // 返回修改后的 SQL 和参数 + return new System.Collections.Generic.KeyValuePair(sql, parameters); + }; return sqlSugar; }); diff --git a/OpenAuth.Identity/Startup.cs b/OpenAuth.Identity/Startup.cs index a70da298..1ae78d90 100644 --- a/OpenAuth.Identity/Startup.cs +++ b/OpenAuth.Identity/Startup.cs @@ -104,13 +104,23 @@ namespace OpenAuth.IdentityServer { DbType = sugarDbtype.Value, ConnectionString = connectionString, - IsAutoCloseConnection = true, - MoreSettings=new ConnMoreSettings() { - PgSqlIsAutoToLower = false,//增删查改支持驼峰表 - PgSqlIsAutoToLowerCodeFirst = false, // 建表建驼峰表。5.1.3.30 - IsAutoToUpper=false //禁用自动转成大写表 - } + IsAutoCloseConnection = true }); + // 配置bool类型转换为smallint + sqlSugar.Aop.OnExecutingChangeSql = (sql, parameters) => + { + foreach (var param in parameters) + { + if (param.Value is bool boolValue) + { + param.DbType = System.Data.DbType.Int16; + // 将 bool 转换为 smallint + param.Value = boolValue ? (short)1 : (short)0; + } + } + // 返回修改后的 SQL 和参数 + return new System.Collections.Generic.KeyValuePair(sql, parameters); + }; return sqlSugar; }); diff --git a/OpenAuth.Mvc/Startup.cs b/OpenAuth.Mvc/Startup.cs index 45576afb..8516d7d6 100644 --- a/OpenAuth.Mvc/Startup.cs +++ b/OpenAuth.Mvc/Startup.cs @@ -111,6 +111,22 @@ namespace OpenAuth.Mvc ConnectionString = connectionString, IsAutoCloseConnection = true }, db => { db.Aop.OnLogExecuting = (sql, pars) => { logger.LogInformation(sql); }; }); + + // 配置bool类型转换为smallint + sqlSugar.Aop.OnExecutingChangeSql = (sql, parameters) => + { + foreach (var param in parameters) + { + if (param.Value is bool boolValue) + { + param.DbType = System.Data.DbType.Int16; + // 将 bool 转换为 smallint + param.Value = boolValue ? (short)1 : (short)0; + } + } + // 返回修改后的 SQL 和参数 + return new System.Collections.Generic.KeyValuePair(sql, parameters); + }; return sqlSugar; }); diff --git a/OpenAuth.Mvc/appsettings.json b/OpenAuth.Mvc/appsettings.json index 29aad41a..ba93e895 100644 --- a/OpenAuth.Mvc/appsettings.json +++ b/OpenAuth.Mvc/appsettings.json @@ -7,8 +7,8 @@ "AllowedHosts": "*", "DataProtection": "temp-keys/", "ConnectionStrings": { - "OpenAuthDBContext": "Data Source=.;Encrypt=false;Initial Catalog=OpenAuthDB;User=sa;Password=000000" - //"OpenAuthDBContext": "server=127.0.0.1;user id=root;database=openauthdb;password=000000" //my sql + // "OpenAuthDBContext": "Data Source=.;Encrypt=false;Initial Catalog=OpenAuthDB;User=sa;Password=000000" + "OpenAuthDBContext": "server=127.0.0.1;user id=root;database=openauthdb;password=000000" //my sql //"OpenAuthDBContext": "Host=localhost;Port=5432;Database=OpenAuth;Username=postgres;Password=123;" //PostgreSQL }, "AppSetting": { @@ -17,7 +17,7 @@ "SSOPassport": "http://localhost:52789", "Version": "1.0", //如果为demo,则可以防止post提交 "DbTypes": { - "OpenAuthDBContext": "SqlServer" //数据库类型:SqlServer、MySql、Oracle、PostgreSQL + "OpenAuthDBContext": "MySql" //数据库类型:SqlServer、MySql、Oracle、PostgreSQL }, "RedisConf": "redistest.cq-p.com.cn:8001,password=share_redis@123", //redis配置 "HttpHost": "http://*:1802" //启动绑定地址及端口 diff --git a/OpenAuth.Repository/Test/TestBase.cs b/OpenAuth.Repository/Test/TestBase.cs index 93dd2a72..aa5a68bc 100644 --- a/OpenAuth.Repository/Test/TestBase.cs +++ b/OpenAuth.Repository/Test/TestBase.cs @@ -85,6 +85,21 @@ namespace OpenAuth.Repository.Test ConnectionString = connectionString, IsAutoCloseConnection = true }); + // 配置bool类型转换为smallint + sqlSugar.Aop.OnExecutingChangeSql = (sql, parameters) => + { + foreach (var param in parameters) + { + if (param.Value is bool boolValue) + { + param.DbType = System.Data.DbType.Int16; + // 将 bool 转换为 smallint + param.Value = boolValue ? (short)1 : (short)0; + } + } + // 返回修改后的 SQL 和参数 + return new System.Collections.Generic.KeyValuePair(sql, parameters); + }; return sqlSugar; }); diff --git a/OpenAuth.WebApi/Startup.cs b/OpenAuth.WebApi/Startup.cs index 46c05d32..3526484a 100644 --- a/OpenAuth.WebApi/Startup.cs +++ b/OpenAuth.WebApi/Startup.cs @@ -184,8 +184,24 @@ namespace OpenAuth.WebApi { DbType = dbType.Value, ConnectionString = connectionString, - IsAutoCloseConnection = true + IsAutoCloseConnection = true }, db => { db.Aop.OnLogExecuting = (sql, pars) => { logger.LogInformation(sql); }; }); + + // 配置bool类型转换为smallint + sqlSugar.Aop.OnExecutingChangeSql = (sql, parameters) => + { + foreach (var param in parameters) + { + if (param.Value is bool boolValue) + { + param.DbType = System.Data.DbType.Int16; + // 将 bool 转换为 smallint + param.Value = boolValue ? (short)1 : (short)0; + } + } + // 返回修改后的 SQL 和参数 + return new System.Collections.Generic.KeyValuePair(sql, parameters); + }; return sqlSugar; });