mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-20 04:48:16 +08:00
fix WithTempQuery 分组解析 bug
This commit is contained in:
@ -1683,9 +1683,12 @@ namespace FreeSql.Internal
|
||||
if (callExp != null) return ExpressionLambdaToSql(callExp, tsc);
|
||||
if (tsc.diymemexp != null)
|
||||
{
|
||||
var expStackFirst = expStack.First();
|
||||
var expStackFirst = expStack.First() as ParameterExpression;
|
||||
var bidx = expStackFirst.Type.FullName.StartsWith("FreeSql.ISelectGroupingAggregate`") ? 2 : 1; //.Key .Value
|
||||
var diyexpResult = tsc.diymemexp.ParseExp(expStack.Where((a, b) => b >= bidx).ToArray());
|
||||
var diyexpMembers = expStack.Where((a, b) => b >= bidx).ToArray();
|
||||
if (diyexpMembers.Any() == false && tsc.diymemexp != null && tsc.diymemexp is Select0Provider.WithTempQueryParser tempQueryParser && tempQueryParser.GetOutsideSelectTable(expStackFirst) != null)
|
||||
diyexpMembers = expStack.ToArray();
|
||||
var diyexpResult = tsc.diymemexp.ParseExp(diyexpMembers);
|
||||
if (string.IsNullOrEmpty(diyexpResult) == false) return diyexpResult;
|
||||
}
|
||||
var psgpdymes = _subSelectParentDiyMemExps.Value; //解决:分组之后的子查询解析
|
||||
|
@ -218,6 +218,11 @@ namespace FreeSql.Internal.CommonProvider
|
||||
return $"{ParseExpMatchedTable.Alias}.{insideData.InsideMap.DbNestedField}";
|
||||
}
|
||||
var read = insideData.InsideMap;
|
||||
if (members.Length == 1 && members[0] == ParseExpMatchedTable.Parameter)
|
||||
{
|
||||
ParseExpMapResult = read;
|
||||
return $"{ParseExpMatchedTable.Alias}.{read.DbNestedField}";
|
||||
}
|
||||
for (var a = 0; a < members.Length; a++)
|
||||
{
|
||||
read = read.Childs.Where(z => z.CsName == (members[a] as MemberExpression)?.Member.Name).FirstOrDefault();
|
||||
|
Reference in New Issue
Block a user