diff --git a/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs b/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs index 3812ab9ff..f8a4085ac 100644 --- a/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs +++ b/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs @@ -52,6 +52,12 @@ namespace OrmTest.Demo id = SqlFunc.Subqueryable().Where(s => s.Id == st.Id).Select(s => s.Id) }) .ToList(); + + var getAll4 = db.Queryable().Select(it => + new { + name = it.Name, + id = SqlFunc.Subqueryable().Where(s => s.Id == it.Id).Select(s => s.Id) + }).ToList(); } private static void Async() diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/SubResolve.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/SubResolve.cs index df911d5eb..dc1ee5ac5 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/SubResolve.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/SubResolve.cs @@ -15,10 +15,14 @@ namespace SqlSugar this.context = context; var currentExpression = expression; allMethods.Add(currentExpression); - if (context.IsSingle) { + if (context.IsSingle && oppsiteExpression != null) + { var childExpression = (oppsiteExpression as MemberExpression).Expression; this.context.SingleTableNameSubqueryShortName = (childExpression as ParameterExpression).Name; } + else if (context.IsSingle) { + this.context.SingleTableNameSubqueryShortName = (context.Expression as LambdaExpression).Parameters.First().Name; + } while (currentExpression != null) { var addItem = currentExpression.Object as MethodCallExpression;