diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs index d43ac3621..f97f197d0 100644 --- a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs +++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs @@ -238,6 +238,7 @@ namespace SqlSugar { resolveExpress.PgSqlIsAutoToLower = true; } + resolveExpress.RootExpression = expression; resolveExpress.JoinQueryInfos = Builder.QueryBuilder.JoinQueryInfos; resolveExpress.IsSingle = IsSingle(); resolveExpress.MappingColumns = Context.MappingColumns; diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/ExpressionContext.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/ExpressionContext.cs index 19e3aed3c..848f2fb17 100644 --- a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/ExpressionContext.cs +++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/ExpressionContext.cs @@ -45,6 +45,7 @@ namespace SqlSugar public IgnoreColumnList IgnoreComumnList { get; set; } public bool PgSqlIsAutoToLower { get; set; } public List SqlFuncServices { get; set; } + public Expression RootExpression { get; set; } public bool IsSingle { get @@ -129,6 +130,7 @@ namespace SqlSugar copyContext.ParameterIndex = this.ParameterIndex; copyContext.PgSqlIsAutoToLower = this.PgSqlIsAutoToLower; copyContext.IsSingle = this.IsSingle; + copyContext.RootExpression = this.RootExpression; return copyContext; } public ExpressionContext GetCopyContextWithMapping() @@ -144,6 +146,7 @@ namespace SqlSugar copyContext.RefreshMapping = this.RefreshMapping; copyContext.PgSqlIsAutoToLower = this.PgSqlIsAutoToLower; copyContext.IsSingle = this.IsSingle; + copyContext.RootExpression = this.RootExpression; return copyContext; } #endregion diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/Subquery/SubResolve.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/Subquery/SubResolve.cs index f417e568a..dac6cbb0e 100644 --- a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/Subquery/SubResolve.cs +++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/ExpressionsToSql/Subquery/SubResolve.cs @@ -63,6 +63,11 @@ namespace SqlSugar context.SingleTableNameSubqueryShortName = (((meExp.Body as BinaryExpression).Right as MemberExpression).Expression as ParameterExpression).Name; } } + else if (context.RootExpression!=null&&context.Expression.GetType().Name == "SimpleBinaryExpression") + { + var name = (this.context.RootExpression as LambdaExpression).Parameters[0].Name; + context.SingleTableNameSubqueryShortName = name; + } else { Check.Exception(true, "I'm sorry I can't parse the current expression"); diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Interface/ILambdaExpressions.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Interface/ILambdaExpressions.cs index 3c0d1f0d5..015034df6 100644 --- a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Interface/ILambdaExpressions.cs +++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Interface/ILambdaExpressions.cs @@ -27,6 +27,7 @@ namespace SqlSugar Action InitMappingInfo { get; set; } Action RefreshMapping { get; set; } bool PgSqlIsAutoToLower { get; set; } + Expression RootExpression { get; set; } string GetAsString(string fieldName, string fieldValue); void Resolve(Expression expression, ResolveExpressType resolveType); diff --git a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs index 40a9d22aa..9b56752c8 100644 --- a/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs +++ b/Src/Asp.NetCore2/SqlSeverTest/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs @@ -392,6 +392,12 @@ namespace SqlSugar } return true; } + public override List GetColumnInfosByTableName(string tableName, bool isCache = true) + { + tableName = SqlBuilder.GetNoTranslationColumnName(tableName); + var result= base.GetColumnInfosByTableName(tableName, isCache); + return result; + } public override bool RenameColumn(string tableName, string oldColumnName, string newColumnName) { tableName = this.SqlBuilder.GetTranslationTableName(tableName);