mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-20 04:48:16 +08:00
- 修复 AsTreeCte + RereadSql 不能同时使用的 bug;#964
This commit is contained in:
@ -533,7 +533,7 @@ namespace FreeSql.Internal.CommonProvider
|
||||
});
|
||||
}
|
||||
static EventHandler<Aop.AuditDataReaderEventArgs> _OldAuditDataReaderHandler;
|
||||
public GetAllFieldExpressionTreeInfo GetAllFieldExpressionTreeLevel2()
|
||||
public GetAllFieldExpressionTreeInfo GetAllFieldExpressionTreeLevel2(bool isRereadSql = true)
|
||||
{
|
||||
if (_selectExpression != null) //ToSql
|
||||
{
|
||||
@ -549,7 +549,7 @@ namespace FreeSql.Internal.CommonProvider
|
||||
_OldAuditDataReaderHandler = _orm.Aop.AuditDataReaderHandler; //清除单表 ExppressionTree
|
||||
_dicGetAllFieldExpressionTree.TryRemove($"{_orm.Ado.DataType}-{_tables[0].Table.DbName}-{_tables[0].Table.CsName}-{_tables[0].Alias}-{_tables[0].Type}", out var oldet);
|
||||
}
|
||||
return _dicGetAllFieldExpressionTree.GetOrAdd(string.Join("+", _tables.Select(a => $"{_orm.Ado.DataType}-{a.Table.DbName}-{a.Table.CsName}-{a.Alias}-{a.Type}")), s =>
|
||||
return _dicGetAllFieldExpressionTree.GetOrAdd(string.Join("+", _tables.Select(a => $"{_orm.Ado.DataType}-{a.Table.DbName}-{a.Table.CsName}-{a.Alias}-{a.Type}-{(isRereadSql ? 1 : 0)}")), s =>
|
||||
{
|
||||
var tb1 = _tables.First().Table;
|
||||
var type = tb1.TypeLazy ?? tb1.Type;
|
||||
@ -583,7 +583,8 @@ namespace FreeSql.Internal.CommonProvider
|
||||
{ //普通字段
|
||||
if (index > 0) field.Append(", ");
|
||||
var quoteName = _commonUtils.QuoteSqlName(col.Attribute.Name);
|
||||
field.Append(_commonUtils.RereadColumn(col, $"{tb.Alias}.{quoteName}"));
|
||||
if (isRereadSql) field.Append(_commonUtils.RereadColumn(col, $"{tb.Alias}.{quoteName}"));
|
||||
else field.Append($"{tb.Alias}.{quoteName}");
|
||||
++index;
|
||||
if (dicfield.ContainsKey(quoteName)) field.Append(_commonUtils.FieldAsAlias($"as{index}"));
|
||||
else dicfield.Add(quoteName, true);
|
||||
@ -606,7 +607,8 @@ namespace FreeSql.Internal.CommonProvider
|
||||
{
|
||||
if (index > 0) field.Append(", ");
|
||||
var quoteName = _commonUtils.QuoteSqlName(col2.Attribute.Name);
|
||||
field.Append(_commonUtils.RereadColumn(col2, $"{tb2.Alias}.{quoteName}"));
|
||||
if (isRereadSql) field.Append(_commonUtils.RereadColumn(col2, $"{tb2.Alias}.{quoteName}"));
|
||||
else field.Append($"{tb2.Alias}.{quoteName}");
|
||||
++index;
|
||||
++otherindex;
|
||||
if (dicfield.ContainsKey(quoteName)) field.Append(_commonUtils.FieldAsAlias($"as{index}"));
|
||||
|
Reference in New Issue
Block a user