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)