mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-19 20:38:16 +08:00
- 修复 FromQuery ToList 读取失败的 bug;#1215
This commit is contained in:
@ -1908,7 +1908,7 @@ namespace FreeSql.Internal
|
||||
alias2 = $"{alias2}__{mp2.Member.Name}";
|
||||
find2 = getOrAddTable(tb2tmp, alias2, exp2IsParameter, parmExp2, mp2);
|
||||
alias2 = find2.Alias;
|
||||
tb2 = tb2tmp;
|
||||
tb2 = find2.Table; // tb2tmp; 此处修改解决 Select<BaseEntity>().AsType(Entity1).ToList(a => a)
|
||||
}
|
||||
if (exp2IsParameter && expStack.Any() == false)
|
||||
{ //附加选择的参数所有列
|
||||
|
@ -1240,7 +1240,20 @@ namespace FreeSql.Internal.CommonProvider
|
||||
public List<T1> ToList() => ToList(false);
|
||||
public virtual List<T1> ToList(bool includeNestedMembers)
|
||||
{
|
||||
if (_diymemexpWithTempQuery != null) return this.ToListMapReaderPrivate<T1>((_diymemexpWithTempQuery as WithTempQueryParser)._insideSelectList[0].InsideAf, null);
|
||||
if (_diymemexpWithTempQuery != null && _diymemexpWithTempQuery is WithTempQueryParser withTempQueryParser)
|
||||
{
|
||||
if (withTempQueryParser._outsideTable[0] != _tables[0])
|
||||
{
|
||||
var tps = _tables.Select(a =>
|
||||
{
|
||||
var tp = Expression.Parameter(a.Table.Type, a.Alias);
|
||||
a.Parameter = tp;
|
||||
return tp;
|
||||
}).ToArray();
|
||||
return this.InternalToList<T1>(tps[0]);
|
||||
}
|
||||
return this.ToListMapReaderPrivate<T1>(withTempQueryParser._insideSelectList[0].InsideAf, null);
|
||||
}
|
||||
if (_selectExpression != null) return this.InternalToList<T1>(_selectExpression);
|
||||
return this.ToListPrivate(includeNestedMembers == false ? this.GetAllFieldExpressionTreeLevel2() : this.GetAllFieldExpressionTreeLevelAll(), null);
|
||||
}
|
||||
@ -1285,7 +1298,20 @@ namespace FreeSql.Internal.CommonProvider
|
||||
public Task<List<T1>> ToListAsync(CancellationToken cancellationToken = default) => ToListAsync(false, cancellationToken);
|
||||
public virtual Task<List<T1>> ToListAsync(bool includeNestedMembers = false, CancellationToken cancellationToken = default)
|
||||
{
|
||||
if (_diymemexpWithTempQuery != null) return this.ToListMapReaderPrivateAsync<T1>((_diymemexpWithTempQuery as WithTempQueryParser)._insideSelectList[0].InsideAf, null, cancellationToken);
|
||||
if (_diymemexpWithTempQuery != null && _diymemexpWithTempQuery is WithTempQueryParser withTempQueryParser)
|
||||
{
|
||||
if (withTempQueryParser._outsideTable[0] != _tables[0])
|
||||
{
|
||||
var tps = _tables.Select(a =>
|
||||
{
|
||||
var tp = Expression.Parameter(a.Table.Type, a.Alias);
|
||||
a.Parameter = tp;
|
||||
return tp;
|
||||
}).ToArray();
|
||||
return this.InternalToListAsync<T1>(tps[0], cancellationToken);
|
||||
}
|
||||
return this.ToListMapReaderPrivateAsync<T1>((_diymemexpWithTempQuery as WithTempQueryParser)._insideSelectList[0].InsideAf, null, cancellationToken);
|
||||
}
|
||||
if (_selectExpression != null) return this.InternalToListAsync<T1>(_selectExpression, cancellationToken);
|
||||
return this.ToListPrivateAsync(includeNestedMembers == false ? this.GetAllFieldExpressionTreeLevel2() : this.GetAllFieldExpressionTreeLevelAll(), null, cancellationToken);
|
||||
}
|
||||
|
Reference in New Issue
Block a user