From 2792ebfbe6d8cf6bbbf452cade02d817b971e261 Mon Sep 17 00:00:00 2001 From: sunkaixuna <610262374@qq.com> Date: Wed, 29 Dec 2021 20:12:20 +0800 Subject: [PATCH] Enumerations support configuration --- .../Abstract/InsertableProvider/InsertableProvider.cs | 9 ++++++++- .../Abstract/SqlBuilderProvider/InsertBuilder.cs | 9 ++++++++- .../Abstract/SqlBuilderProvider/UpdateBuilder.cs | 9 ++++++++- .../Abstract/UpdateProvider/UpdateableProvider.cs | 9 ++++++++- Src/Asp.Net/SqlSugar/Entities/ConnMoreSettings.cs | 1 + .../Realization/MySql/SqlBuilder/MySqlInsertBuilder.cs | 9 ++++++++- .../Realization/MySql/SqlBuilder/MySqlUpdateBuilder.cs | 9 ++++++++- .../Realization/Sqlite/SqlBuilder/SqliteInsertBuilder.cs | 9 ++++++++- .../Realization/Sqlite/SqlBuilder/SqliteUpdateBuilder.cs | 9 ++++++++- 9 files changed, 65 insertions(+), 8 deletions(-) diff --git a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs index 0d62769cb..569e2aa1c 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs @@ -647,7 +647,14 @@ namespace SqlSugar } if (columnInfo.PropertyType.IsEnum()&& columnInfo.Value!=null) { - columnInfo.Value = Convert.ToInt64(columnInfo.Value); + if (this.Context.CurrentConnectionConfig.MoreSettings?.TableEnumIsString == true) + { + columnInfo.Value = columnInfo.Value.ToString(); + } + else + { + columnInfo.Value = Convert.ToInt64(columnInfo.Value); + } } if (column.IsJson&& columnInfo.Value!=null) { diff --git a/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/InsertBuilder.cs b/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/InsertBuilder.cs index 478893cf3..8d8913342 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/InsertBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/InsertBuilder.cs @@ -196,7 +196,14 @@ namespace SqlSugar } else if (type.IsEnum()) { - return Convert.ToInt64(value); + if (this.Context.CurrentConnectionConfig.MoreSettings?.TableEnumIsString == true) + { + return value.ToString(); + } + else + { + return Convert.ToInt64(value); + } } else if (type == UtilConstants.BoolType) { diff --git a/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/UpdateBuilder.cs b/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/UpdateBuilder.cs index d11f21578..1bd9284a1 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/UpdateBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/UpdateBuilder.cs @@ -304,7 +304,14 @@ namespace SqlSugar } else if (type.IsEnum()) { - return Convert.ToInt64(value); + if (this.Context.CurrentConnectionConfig.MoreSettings?.TableEnumIsString == true) + { + return value.ToString(); + } + else + { + return Convert.ToInt64(value); + } } else if (type == UtilConstants.BoolType) { diff --git a/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs index 985dac4f7..eda4f5869 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs @@ -572,7 +572,14 @@ namespace SqlSugar }; if (columnInfo.PropertyType.IsEnum()&& columnInfo.Value!=null) { - columnInfo.Value = Convert.ToInt64(columnInfo.Value); + if (this.Context.CurrentConnectionConfig.MoreSettings?.TableEnumIsString == true) + { + columnInfo.Value = columnInfo.Value.ToString(); + } + else + { + columnInfo.Value = Convert.ToInt64(columnInfo.Value); + } } if (column.IsJson) { diff --git a/Src/Asp.Net/SqlSugar/Entities/ConnMoreSettings.cs b/Src/Asp.Net/SqlSugar/Entities/ConnMoreSettings.cs index 8ed33faa0..6a0b0d0e2 100644 --- a/Src/Asp.Net/SqlSugar/Entities/ConnMoreSettings.cs +++ b/Src/Asp.Net/SqlSugar/Entities/ConnMoreSettings.cs @@ -13,5 +13,6 @@ namespace SqlSugar public bool DisableNvarchar { get; set; } public bool PgSqlIsAutoToLower = true; public int DefaultCacheDurationInSeconds { get; set; } + public bool? TableEnumIsString { get; set; } } } diff --git a/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlInsertBuilder.cs b/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlInsertBuilder.cs index eec51b3e7..feafe88d5 100644 --- a/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlInsertBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlInsertBuilder.cs @@ -57,7 +57,14 @@ namespace SqlSugar } else if (type.IsEnum()) { - return Convert.ToInt64(value); + if (this.Context.CurrentConnectionConfig.MoreSettings?.TableEnumIsString == true) + { + return value.ToString(); + } + else + { + return Convert.ToInt64(value); + } } else if (type == UtilConstants.BoolType) { diff --git a/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlUpdateBuilder.cs b/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlUpdateBuilder.cs index 03895dbc4..12f8bda3a 100644 --- a/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlUpdateBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Realization/MySql/SqlBuilder/MySqlUpdateBuilder.cs @@ -119,7 +119,14 @@ namespace SqlSugar } else if (type.IsEnum()) { - return Convert.ToInt64(value); + if (this.Context.CurrentConnectionConfig.MoreSettings?.TableEnumIsString == true) + { + return value.ToString(); + } + else + { + return Convert.ToInt64(value); + } } else if (type == UtilConstants.BoolType) { diff --git a/Src/Asp.Net/SqlSugar/Realization/Sqlite/SqlBuilder/SqliteInsertBuilder.cs b/Src/Asp.Net/SqlSugar/Realization/Sqlite/SqlBuilder/SqliteInsertBuilder.cs index b44adee88..cb6713e95 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Sqlite/SqlBuilder/SqliteInsertBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Sqlite/SqlBuilder/SqliteInsertBuilder.cs @@ -99,7 +99,14 @@ namespace SqlSugar } else if (type.IsEnum()) { - return Convert.ToInt64(value); + if (this.Context.CurrentConnectionConfig.MoreSettings?.TableEnumIsString == true) + { + return value.ToString(); + } + else + { + return Convert.ToInt64(value); + } } else if (type == UtilConstants.ByteArrayType) { diff --git a/Src/Asp.Net/SqlSugar/Realization/Sqlite/SqlBuilder/SqliteUpdateBuilder.cs b/Src/Asp.Net/SqlSugar/Realization/Sqlite/SqlBuilder/SqliteUpdateBuilder.cs index 6b0f1b72c..ff12e6b8b 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Sqlite/SqlBuilder/SqliteUpdateBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Sqlite/SqlBuilder/SqliteUpdateBuilder.cs @@ -61,7 +61,14 @@ namespace SqlSugar } else if (type.IsEnum()) { - return Convert.ToInt64(value); + if (this.Context.CurrentConnectionConfig.MoreSettings?.TableEnumIsString == true) + { + return value.ToString(); + } + else + { + return Convert.ToInt64(value); + } } else if (type == UtilConstants.ByteArrayType) {