From ca326fb8fa76fca953a022ca8cf33042ac7af93b Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Tue, 19 Apr 2022 18:59:21 +0800 Subject: [PATCH] Update Includes query --- .../QueryableProvider/QueryableProvider.cs | 14 ++++++++++++++ Src/Asp.Net/SqlSugar/Interface/IQueryable.cs | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs index ec1963ff2..68b2701d5 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs @@ -853,8 +853,22 @@ namespace SqlSugar return this.Select("1").ToList().Count() > 0; } + public virtual List ToList(Expression> 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 Select(Expression> 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(expression); } diff --git a/Src/Asp.Net/SqlSugar/Interface/IQueryable.cs b/Src/Asp.Net/SqlSugar/Interface/IQueryable.cs index d88c863a6..982f8a5e1 100644 --- a/Src/Asp.Net/SqlSugar/Interface/IQueryable.cs +++ b/Src/Asp.Net/SqlSugar/Interface/IQueryable.cs @@ -132,7 +132,7 @@ namespace SqlSugar Task AvgAsync(string avgField); TResult Avg(Expression> expression); Task AvgAsync(Expression> expression); - + List ToList(Expression> expression); List ToList(); List SetContext(Expression> thisFiled, Expression> mappingFiled, ParameterT parameter); Task > SetContextAsync(Expression> thisFiled, Expression> mappingFiled, ParameterT parameter);