db.Queryable.Includes.Select.ToList

This commit is contained in:
sunkaixuan 2023-05-04 23:33:36 +08:00
parent 5a11bf0cf1
commit de66573d4a
4 changed files with 188 additions and 3 deletions

View File

@ -556,12 +556,12 @@ namespace SqlSugar
#endregion #endregion
#region Navigate #region Navigate
private bool IsAppendNavColumns() internal bool IsAppendNavColumns()
{ {
return this.QueryBuilder.Includes.HasValue() && this.QueryBuilder.AppendNavInfo == null; return this.QueryBuilder.Includes.HasValue() && this.QueryBuilder.AppendNavInfo == null;
} }
private void SetAppendNavColumns(Expression expression) internal void SetAppendNavColumns(Expression expression)
{ {
var tResultType = expression.Type; var tResultType = expression.Type;
var dic = ExpressionTool.GetNewExpressionItemList(expression); var dic = ExpressionTool.GetNewExpressionItemList(expression);

View File

@ -229,6 +229,10 @@ namespace SqlSugar
#region Select #region Select
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T,T2, TResult>> expression, bool isAutoFill) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T,T2, TResult>> expression, bool isAutoFill)
@ -946,11 +950,19 @@ namespace SqlSugar
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
@ -1531,14 +1543,26 @@ namespace SqlSugar
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
#endregion #endregion
@ -2251,18 +2275,34 @@ namespace SqlSugar
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
#endregion #endregion

View File

@ -263,22 +263,42 @@ namespace SqlSugar
#region Select #region Select
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5,T6, TResult>> expression, bool isAutoFill) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5,T6, TResult>> expression, bool isAutoFill)
@ -954,26 +974,50 @@ namespace SqlSugar
#region Select #region Select
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, T7, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, T7, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6,T7, TResult>> expression, bool isAutoFill) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6,T7, TResult>> expression, bool isAutoFill)
@ -1612,30 +1656,58 @@ namespace SqlSugar
#region Select #region Select
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, T7, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, T7, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, T7, T8, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, T7, T8, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, T7,T8, TResult>> expression, bool isAutoFill) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, T7,T8, TResult>> expression, bool isAutoFill)
@ -2265,34 +2337,66 @@ namespace SqlSugar
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, T7, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, T7, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, T7, T8, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, T7, T8, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, T7, T8, T9, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, T7, T8, T9, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
#endregion #endregion
@ -2911,38 +3015,74 @@ namespace SqlSugar
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, T7, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, T7, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, T7, T8, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, T7, T8, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, T7, T8, T9, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, T7, T8, T9, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, TResult>> expression) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, TResult>> expression)
{ {
if (IsAppendNavColumns())
{
SetAppendNavColumns(expression);
}
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }
#endregion #endregion

View File

@ -809,7 +809,12 @@ namespace SqlSugar
if (this.AppendNavInfo?.AppendProperties?.Any() ==true) if (this.AppendNavInfo?.AppendProperties?.Any() ==true)
{ {
result += ","; result += ",";
result += string.Join(",",this.AppendNavInfo.AppendProperties.Select(it=>it.Value+ " AS SugarNav_" + it.Key)); var shortName = "";
if (this.TableShortName.HasValue())
{
shortName = $"{Builder.GetTranslationColumnName(this.TableShortName)}.";
}
result += string.Join(",",this.AppendNavInfo.AppendProperties.Select(it=> shortName+Builder.GetTranslationColumnName(it.Value)+ " AS SugarNav_" + it.Key));
} }
if (result.Contains("/**/*")) if (result.Contains("/**/*"))
{ {