From 00ab65f74f77298234a1252748ab3a2e3bccb602 Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Wed, 31 Aug 2022 18:11:26 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BF=AE=E5=A4=8D=20RereadSql=20=E5=B5=8C?= =?UTF-8?q?=E5=A5=97=E6=9F=A5=E8=AF=A2=E6=97=A0=E5=88=AB=E5=90=8D=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SelectProvider/Select0ProviderReader.cs | 32 ++++++++++++++----- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select0ProviderReader.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select0ProviderReader.cs index fd6c3f31..97b3568c 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select0ProviderReader.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select0ProviderReader.cs @@ -446,10 +446,16 @@ namespace FreeSql.Internal.CommonProvider if (tbiindex > 0 && colidx == 0) field.Append("\r\n"); } var quoteName = _commonUtils.QuoteSqlName(col.Attribute.Name); - field.Append(_commonUtils.RereadColumn(col, $"{tbi.Alias}.{quoteName}")); + var columnSql = $"{tbi.Alias}.{quoteName}"; + var rereadSql = _commonUtils.RereadColumn(col, columnSql); + field.Append(rereadSql); ++index; if (dicfield.ContainsKey(quoteName)) field.Append(_commonUtils.FieldAsAlias($"as{index}")); - else dicfield.Add(quoteName, true); + else + { + dicfield.Add(quoteName, true); + if (rereadSql != columnSql) field.Append(_commonUtils.FieldAsAlias(quoteName)); + } ++colidx; } tbiindex++; @@ -603,11 +609,16 @@ namespace FreeSql.Internal.CommonProvider { //普通字段 if (index > 0) field.Append(", "); var quoteName = _commonUtils.QuoteSqlName(col.Attribute.Name); - if (isRereadSql) field.Append(_commonUtils.RereadColumn(col, $"{tb.Alias}.{quoteName}")); - else field.Append($"{tb.Alias}.{quoteName}"); + var columnSql = $"{tb.Alias}.{quoteName}"; + var rereadSql = isRereadSql ? _commonUtils.RereadColumn(col, columnSql) : columnSql; + field.Append(rereadSql); ++index; if (dicfield.ContainsKey(quoteName)) field.Append(_commonUtils.FieldAsAlias($"as{index}")); - else dicfield.Add(quoteName, true); + else + { + dicfield.Add(quoteName, true); + if (rereadSql != columnSql) field.Append(_commonUtils.FieldAsAlias(quoteName)); + } } else { @@ -627,12 +638,17 @@ namespace FreeSql.Internal.CommonProvider { if (index > 0) field.Append(", "); var quoteName = _commonUtils.QuoteSqlName(col2.Attribute.Name); - if (isRereadSql) field.Append(_commonUtils.RereadColumn(col2, $"{tb2.Alias}.{quoteName}")); - else field.Append($"{tb2.Alias}.{quoteName}"); + var columnSql = $"{tb2.Alias}.{quoteName}"; + var rereadSql = isRereadSql ? _commonUtils.RereadColumn(col2, columnSql) : columnSql; + field.Append(rereadSql); ++index; ++otherindex; if (dicfield.ContainsKey(quoteName)) field.Append(_commonUtils.FieldAsAlias($"as{index}")); - else dicfield.Add(quoteName, true); + else + { + dicfield.Add(quoteName, true); + if (rereadSql != columnSql) field.Append(_commonUtils.FieldAsAlias(quoteName)); + } } } //只读到二级属性