Add reload

This commit is contained in:
sunkaixuan
2022-05-18 17:48:04 +08:00
parent 60106fa239
commit fe57db969a
2 changed files with 21 additions and 4 deletions

View File

@@ -894,7 +894,7 @@ namespace SqlSugar
public virtual List<TResult> ToList<TResult>(Expression<Func<T, TResult>> expression)
{
if (this.QueryBuilder.Includes.Count > 0)
if (this.QueryBuilder.Includes != null && this.QueryBuilder.Includes.Count > 0)
{
var list = this.ToList().Select(expression.Compile()).ToList();
return list;
@@ -905,6 +905,20 @@ namespace SqlSugar
return list;
}
}
public async virtual Task<List<TResult>> ToListAsync<TResult>(Expression<Func<T, TResult>> expression)
{
if (this.QueryBuilder.Includes != null && this.QueryBuilder.Includes.Count > 0)
{
var result = await this.ToListAsync();
var list = result.Select(expression.Compile()).ToList();
return list;
}
else
{
var list = await this.Select(expression).ToListAsync();
return list;
}
}
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}{{....}})");
@@ -1870,7 +1884,7 @@ namespace SqlSugar
}
public virtual List<TResult> ToPageList<TResult>(int pageIndex, int pageSize, ref int totalNumber,Expression<Func<T, TResult>> expression)
{
if (this.QueryBuilder.Includes.Count > 0)
if (this.QueryBuilder.Includes!=null&&this.QueryBuilder.Includes.Count > 0)
{
var list = this.ToPageList(pageIndex,pageSize,ref totalNumber).Select(expression.Compile()).ToList();
return list;
@@ -2130,9 +2144,9 @@ namespace SqlSugar
pageIndex = _PageList(pageIndex, pageSize);
return ToListAsync();
}
public async virtual Task<List<TResult>> ToPageList<TResult>(int pageIndex, int pageSize, RefAsync<int> totalNumber, Expression<Func<T, TResult>> expression)
public async virtual Task<List<TResult>> ToPageListAsync<TResult>(int pageIndex, int pageSize, RefAsync<int> totalNumber, Expression<Func<T, TResult>> expression)
{
if (this.QueryBuilder.Includes.Count > 0)
if (this.QueryBuilder.Includes!=null&&this.QueryBuilder.Includes.Count > 0)
{
var pList = await this.ToPageListAsync(pageIndex, pageSize, totalNumber);
var list = pList.Select(expression.Compile()).ToList();

View File

@@ -134,6 +134,7 @@ namespace SqlSugar
TResult Avg<TResult>(Expression<Func<T, TResult>> expression);
Task<TResult> AvgAsync<TResult>(Expression<Func<T, TResult>> expression);
List<TResult> ToList<TResult>(Expression<Func<T, TResult>> expression);
Task<List<TResult>> ToListAsync<TResult>(Expression<Func<T, TResult>> expression);
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>> thisFiled1, Expression<Func<object>> mappingFiled1, Expression<Func<T, object>> thisFiled2, Expression<Func<object>> mappingFiled2, ParameterT parameter);
@@ -176,8 +177,10 @@ namespace SqlSugar
List<T> ToPageList(int pageNumber, int pageSize);
Task<List<T>> ToPageListAsync(int pageNumber, int pageSize);
List<T> ToPageList(int pageNumber, int pageSize, ref int totalNumber);
List<TResult> ToPageList<TResult>(int pageIndex, int pageSize, ref int totalNumber, Expression<Func<T, TResult>> expression);
List<T> ToPageList(int pageNumber, int pageSize, ref int totalNumber,ref int totalPage);
Task<List<T>> ToPageListAsync(int pageNumber, int pageSize, RefAsync<int> totalNumber);
Task<List<TResult>> ToPageListAsync<TResult>(int pageIndex, int pageSize, RefAsync<int> totalNumber, Expression<Func<T, TResult>> expression);
Task<List<T>> ToPageListAsync(int pageNumber, int pageSize, RefAsync<int> totalNumber, RefAsync<int> totalPage);
ISugarQueryable<T> WithCache(string cacheKey,int cacheDurationInSeconds = int.MaxValue);
ISugarQueryable<T> WithCache(int cacheDurationInSeconds = int.MaxValue);