Update Select(exp,true)

This commit is contained in:
sunkaixuan 2022-12-03 21:58:44 +08:00
parent a69619cd6c
commit 5ad86fe049
2 changed files with 5 additions and 3 deletions

View File

@ -960,9 +960,9 @@ namespace SqlSugar
} }
public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, TResult>> expression, bool isAutoFill) public ISugarQueryable<TResult> Select<TResult>(Expression<Func<T, TResult>> expression, bool isAutoFill)
{ {
var clone = this.Clone(); var clone = this.Select(expression).Clone();
//clone.QueryBuilder.LambdaExpressions.Index = QueryBuilder.LambdaExpressions.Index+1; //clone.QueryBuilder.LambdaExpressions.Index = QueryBuilder.LambdaExpressions.Index+1;
var ps = clone.Select(expression).QueryBuilder; var ps = clone.QueryBuilder;
var sql = ps.GetSelectValue; var sql = ps.GetSelectValue;
if (string.IsNullOrEmpty(sql) || sql.Trim() == "*") if (string.IsNullOrEmpty(sql) || sql.Trim() == "*")
{ {
@ -973,6 +973,7 @@ namespace SqlSugar
this.QueryBuilder.TableShortName = clone.QueryBuilder.TableShortName; this.QueryBuilder.TableShortName = clone.QueryBuilder.TableShortName;
} }
this.QueryBuilder.Parameters = ps.Parameters; this.QueryBuilder.Parameters = ps.Parameters;
this.QueryBuilder.SubToListParameters = clone.QueryBuilder.SubToListParameters;
this.QueryBuilder.LambdaExpressions.ParameterIndex = clone.QueryBuilder.LambdaExpressions.ParameterIndex; this.QueryBuilder.LambdaExpressions.ParameterIndex = clone.QueryBuilder.LambdaExpressions.ParameterIndex;
var parameters = (expression as LambdaExpression).Parameters; var parameters = (expression as LambdaExpression).Parameters;
var columnsResult = this.Context.EntityMaintenance.GetEntityInfo<TResult>().Columns; var columnsResult = this.Context.EntityMaintenance.GetEntityInfo<TResult>().Columns;

View File

@ -195,12 +195,13 @@ namespace SqlSugar
} }
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)
{ {
var clone = this.Clone().Select(expression); var clone = this.Select(expression).Clone();
var sql = clone.QueryBuilder.GetSelectValue; var sql = clone.QueryBuilder.GetSelectValue;
if (this.QueryBuilder.IsSingle() || string.IsNullOrEmpty(sql) || sql.Trim() == "*") if (this.QueryBuilder.IsSingle() || string.IsNullOrEmpty(sql) || sql.Trim() == "*")
{ {
return this.Select<TResult>(expression); return this.Select<TResult>(expression);
} }
this.QueryBuilder.SubToListParameters = clone.QueryBuilder.SubToListParameters;
this.QueryBuilder.Parameters = clone.QueryBuilder.Parameters; this.QueryBuilder.Parameters = clone.QueryBuilder.Parameters;
this.QueryBuilder.LambdaExpressions.ParameterIndex = clone.QueryBuilder.LambdaExpressions.ParameterIndex; this.QueryBuilder.LambdaExpressions.ParameterIndex = clone.QueryBuilder.LambdaExpressions.ParameterIndex;
var parameters = (expression as LambdaExpression).Parameters; var parameters = (expression as LambdaExpression).Parameters;