From fe027965d03d73a27a2cfd99359f5be1e9cf7d07 Mon Sep 17 00:00:00 2001 From: Soar360 Date: Thu, 19 Sep 2024 22:09:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20FormatName=20=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E9=80=BB=E8=BE=91=E5=B9=B6=E4=BD=BF=E7=94=A8=E7=BB=A7?= =?UTF-8?q?=E6=89=BF=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 删除了 `FormatName` 方法的注释,并用 `inheritdoc` 标签替代,以继承基类的注释。 修改了 `FormatName` 方法的实现逻辑: * 原来的实现是无论如何都给名称加上双引号。 * 新的实现是只有在名称包含大写字符时才加上双引号,否则保持原样。 --- XCode/DataAccessLayer/Database/PostgreSQL.cs | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/XCode/DataAccessLayer/Database/PostgreSQL.cs b/XCode/DataAccessLayer/Database/PostgreSQL.cs index bcddc35e1..2b76de475 100644 --- a/XCode/DataAccessLayer/Database/PostgreSQL.cs +++ b/XCode/DataAccessLayer/Database/PostgreSQL.cs @@ -208,20 +208,17 @@ private string ValueToSQL(Type? type, bool isNullable, object? value) /// public override String StringConcat(String left, String right) => (!String.IsNullOrEmpty(left) ? left : "''") + "||" + (!String.IsNullOrEmpty(right) ? right : "''"); - /// - /// 格式化数据库名称,表名称,字段名称 增加双引号("") - /// PGSQL 默认情况下创建库表时自动转为小写,增加引号强制区分大小写 - /// 以解决数据库创建查询时大小写问题 - /// - /// - /// + /// public override String FormatName(String name) { name = base.FormatName(name); if (name.StartsWith("\"") || name.EndsWith("\"")) return name; - return $"\"{name}\""; + //如果包含大写字符,就加上引号 + if (name.Any(char.IsUpper)) return $"\"{name}\""; + + return name; } ///