diff --git a/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs b/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs index 660bdb027..f60a6c168 100644 --- a/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs +++ b/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs @@ -454,6 +454,12 @@ namespace OrmTest.Demo var test52 = db.Queryable().Select(it => SqlFunc.IsNull(it.CreateTime, SqlFunc.GetDate())).ToList(); var test53 = db.Queryable().Select(it => SqlFunc.IsNull(it.CreateTime, SqlFunc.GetDate())).First(); var test54 = db.Queryable().Where(it => it.CreateTime == test52.First().Value).ToList(); + var test55 = db.Queryable().Select(it => new { + isAny = SqlFunc.Subqueryable().Any()?1:2 + }).ToList(); + var test56= db.Queryable().Select(it=> new { + isAny=SqlFunc.Subqueryable().Any() + }).ToList(); } public static void Page() diff --git a/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/SubResolve.cs b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/SubResolve.cs index 6bacca162..f417e568a 100644 --- a/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/SubResolve.cs +++ b/Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/SubResolve.cs @@ -39,12 +39,16 @@ namespace SqlSugar } else if (context.Expression is MethodCallExpression) { - var meExp = ((context.Expression as MethodCallExpression).Object as MethodCallExpression).Arguments[0] as LambdaExpression; - var selfParameterName = meExp.Parameters.First().Name; - context.SingleTableNameSubqueryShortName = (((meExp.Body as BinaryExpression).Left as MemberExpression).Expression as ParameterExpression).Name; - if (context.SingleTableNameSubqueryShortName == selfParameterName) + var expArgs = ((context.Expression as MethodCallExpression).Object as MethodCallExpression).Arguments; + if (expArgs != null && expArgs.Any()) { - context.SingleTableNameSubqueryShortName = (((meExp.Body as BinaryExpression).Right as MemberExpression).Expression as ParameterExpression).Name; + var meExp = expArgs[0] as LambdaExpression; + var selfParameterName = meExp.Parameters.First().Name; + context.SingleTableNameSubqueryShortName = (((meExp.Body as BinaryExpression).Left as MemberExpression).Expression as ParameterExpression).Name; + if (context.SingleTableNameSubqueryShortName == selfParameterName) + { + context.SingleTableNameSubqueryShortName = (((meExp.Body as BinaryExpression).Right as MemberExpression).Expression as ParameterExpression).Name; + } } } else if (context.Expression.GetType().Name == "MethodBinaryExpression")