From f6b7ba8b88dd2b9e5a9e4d980ca40bbd5cd22114 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 | 19 +++++++++++++++++++ OpenAuth.Identity/Startup.cs | 26 ++++++++++++++++++++------ OpenAuth.Mvc/Startup.cs | 20 ++++++++++++++++++++ OpenAuth.Repository/Test/TestBase.cs | 20 ++++++++++++++++++++ OpenAuth.WebApi/Startup.cs | 22 +++++++++++++++++++++- 5 files changed, 100 insertions(+), 7 deletions(-) diff --git a/OpenAuth.App/Test/TestBase.cs b/OpenAuth.App/Test/TestBase.cs index 0614968d..ac3902d9 100644 --- a/OpenAuth.App/Test/TestBase.cs +++ b/OpenAuth.App/Test/TestBase.cs @@ -79,6 +79,25 @@ namespace OpenAuth.App.Test ConnectionString = connectionString, IsAutoCloseConnection = true }); + + if(dbType.Value != SqlSugar.DbType.PostgreSQL){ + return sqlSugar; + } + // 配置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..341b2e79 100644 --- a/OpenAuth.Identity/Startup.cs +++ b/OpenAuth.Identity/Startup.cs @@ -104,13 +104,27 @@ 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 }); + + if(sugarDbtype.Value != SqlSugar.DbType.PostgreSQL){ + return sqlSugar; + } + // 配置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..78611723 100644 --- a/OpenAuth.Mvc/Startup.cs +++ b/OpenAuth.Mvc/Startup.cs @@ -111,6 +111,26 @@ namespace OpenAuth.Mvc ConnectionString = connectionString, IsAutoCloseConnection = true }, db => { db.Aop.OnLogExecuting = (sql, pars) => { logger.LogInformation(sql); }; }); + + if(dbType.Value != SqlSugar.DbType.PostgreSQL){ + return sqlSugar; + } + + // 配置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.Repository/Test/TestBase.cs b/OpenAuth.Repository/Test/TestBase.cs index 93dd2a72..714c6813 100644 --- a/OpenAuth.Repository/Test/TestBase.cs +++ b/OpenAuth.Repository/Test/TestBase.cs @@ -85,6 +85,26 @@ namespace OpenAuth.Repository.Test ConnectionString = connectionString, IsAutoCloseConnection = true }); + + if(dbType.Value != SqlSugar.DbType.PostgreSQL){ + return sqlSugar; + } + + // 配置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..731b23b0 100644 --- a/OpenAuth.WebApi/Startup.cs +++ b/OpenAuth.WebApi/Startup.cs @@ -184,8 +184,28 @@ namespace OpenAuth.WebApi { DbType = dbType.Value, ConnectionString = connectionString, - IsAutoCloseConnection = true + IsAutoCloseConnection = true }, db => { db.Aop.OnLogExecuting = (sql, pars) => { logger.LogInformation(sql); }; }); + + if(dbType.Value != SqlSugar.DbType.PostgreSQL){ + return sqlSugar; + } + + // 配置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; });