Update Includes query

This commit is contained in:
sunkaixuan
2022-04-19 18:59:21 +08:00
parent d823b22843
commit ca326fb8fa
2 changed files with 15 additions and 1 deletions

View File

@@ -853,8 +853,22 @@ namespace SqlSugar
return this.Select("1").ToList().Count() > 0; return this.Select("1").ToList().Count() > 0;
} }
public virtual List<TResult> ToList<TResult>(Expression<Func<T, TResult>> expression)
{
if (this.QueryBuilder.Includes.Count > 0)
{
var list = this.ToList().Select(expression.Compile()).ToList();
return list;
}
else
{
var list = this.Select(expression).ToList();
return list;
}
}
public virtual ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, TResult>> expression) public virtual ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, TResult>> expression)
{ {
Check.ExceptionEasy(this.QueryBuilder.Includes.HasValue(), $"use Includes(...).ToList(it=>new {typeof(TResult).Name} {{...}} )", $"Includes()后面禁使用Select正确写法: ToList(it=>new {typeof(TResult).Name}{{....}})");
return _Select<TResult>(expression); return _Select<TResult>(expression);
} }

View File

@@ -132,7 +132,7 @@ namespace SqlSugar
Task<TResult> AvgAsync<TResult>(string avgField); Task<TResult> AvgAsync<TResult>(string avgField);
TResult Avg<TResult>(Expression<Func<T, TResult>> expression); TResult Avg<TResult>(Expression<Func<T, TResult>> expression);
Task<TResult> AvgAsync<TResult>(Expression<Func<T, TResult>> expression); Task<TResult> AvgAsync<TResult>(Expression<Func<T, TResult>> expression);
List<TResult> ToList<TResult>(Expression<Func<T, TResult>> expression);
List<T> ToList(); List<T> ToList();
List<T> SetContext<ParameterT>(Expression<Func<T,object>> thisFiled, Expression<Func<object>> mappingFiled, ParameterT parameter); List<T> SetContext<ParameterT>(Expression<Func<T,object>> thisFiled, Expression<Func<object>> mappingFiled, ParameterT parameter);
Task <List<T>> SetContextAsync<ParameterT>(Expression<Func<T, object>> thisFiled, Expression<Func<object>> mappingFiled, ParameterT parameter); Task <List<T>> SetContextAsync<ParameterT>(Expression<Func<T, object>> thisFiled, Expression<Func<object>> mappingFiled, ParameterT parameter);