From ab95f5785916f0a7a61a854c72c08215a58cc50a Mon Sep 17 00:00:00 2001 From: sunkaixuna <610262374@qq.com> Date: Sat, 31 Jul 2021 19:59:04 +0800 Subject: [PATCH] Update Pgsql entity aop bug --- Src/Asp.Net/PgSqlTest/PgSqlTest.csproj | 1 + Src/Asp.Net/PgSqlTest/UnitTest/UAopTest.cs | 29 +++++++++++++++++++ .../SqlBuilder/PostgreSQLExpressionContext.cs | 8 +++++ 3 files changed, 38 insertions(+) create mode 100644 Src/Asp.Net/PgSqlTest/UnitTest/UAopTest.cs diff --git a/Src/Asp.Net/PgSqlTest/PgSqlTest.csproj b/Src/Asp.Net/PgSqlTest/PgSqlTest.csproj index f4bc4411c..f7a972a05 100644 --- a/Src/Asp.Net/PgSqlTest/PgSqlTest.csproj +++ b/Src/Asp.Net/PgSqlTest/PgSqlTest.csproj @@ -96,6 +96,7 @@ + diff --git a/Src/Asp.Net/PgSqlTest/UnitTest/UAopTest.cs b/Src/Asp.Net/PgSqlTest/UnitTest/UAopTest.cs new file mode 100644 index 000000000..87cfe26be --- /dev/null +++ b/Src/Asp.Net/PgSqlTest/UnitTest/UAopTest.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OrmTest +{ + public partial class NewUnitTest + { + + public static void AopTest() + { + var db = Db; + db.CurrentConnectionConfig.ConfigureExternalServices = new SqlSugar.ConfigureExternalServices() + { + + EntityNameService = (t, e) => { + + e.DbTableName = "public." + e.DbTableName; + } + }; + db.Queryable().Select(it=> new { + x=SqlSugar.SqlFunc.Subqueryable().Select(s=>s.Id) + }).ToList(); + db.CurrentConnectionConfig.ConfigureExternalServices = new SqlSugar.ConfigureExternalServices(); + } + } +} diff --git a/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLExpressionContext.cs b/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLExpressionContext.cs index 1f4c13a73..b40ca8e63 100644 --- a/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLExpressionContext.cs +++ b/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/SqlBuilder/PostgreSQLExpressionContext.cs @@ -53,6 +53,14 @@ namespace SqlSugar else if (isMapping) { var mappingInfo = this.MappingTables.FirstOrDefault(it => it.EntityName.Equals(entityName, StringComparison.CurrentCultureIgnoreCase)); + + var tableName = mappingInfo.DbTableName+""; + if (tableName.Contains(".")) + { + tableName = string.Join(UtilConstants.Dot, tableName.Split(UtilConstants.DotChar).Select(it => GetTranslationText(it))); + return tableName; + } + return SqlTranslationLeft + (mappingInfo == null ? entityName : mappingInfo.DbTableName).ToLower(isAutoToLower) + SqlTranslationRight; } else if (isComplex)