From f17754c6f9462b82e1a73c3941202d7bc1c14f33 Mon Sep 17 00:00:00 2001 From: skx <610262374@qq.com> Date: Tue, 29 Dec 2020 13:06:45 +0800 Subject: [PATCH] SubQuery support join --- .../SqlServerTest/Demo/Demo1_Queryable.cs | 6 +- .../SqlServerTest/SqlServerTest.csproj | 3 + .../QueryableProvider/QueryableProvider.cs | 2 +- .../SqlBuilderProvider/SqlBuilderProvider.cs | 4 ++ .../Common/MapperExpression.cs | 1 + .../ExpressionsToSql/ExpressionContext.cs | 1 + .../ResolveItems/MapperExpressionResolve.cs | 11 +++- .../Subquery/Items/SubLeftJoin.cs | 62 +++++++++++++++++++ .../ExpressionsToSql/Subquery/SubTools.cs | 1 + .../ExpressionsToSql/Subquery/Subquerable.cs | 10 +++ .../SqlSugar/Properties/AssemblyInfo.cs | 4 +- Src/Asp.Net/SqlSugar/SqlSugar.csproj | 1 + 12 files changed, 99 insertions(+), 7 deletions(-) create mode 100644 Src/Asp.Net/SqlSugar/ExpressionsToSql/Subquery/Items/SubLeftJoin.cs diff --git a/Src/Asp.Net/SqlServerTest/Demo/Demo1_Queryable.cs b/Src/Asp.Net/SqlServerTest/Demo/Demo1_Queryable.cs index 07e88fb72..b50886cea 100644 --- a/Src/Asp.Net/SqlServerTest/Demo/Demo1_Queryable.cs +++ b/Src/Asp.Net/SqlServerTest/Demo/Demo1_Queryable.cs @@ -122,7 +122,11 @@ namespace OrmTest customName2 = SqlFunc.Subqueryable().Where("it.CustomId = id").Where(s => true).Select(s => s.Name) }).ToList(); - var list2 = db.Queryable().Where(it => SqlFunc.Subqueryable().Where(i => i.OrderId == it.Id).Any()).ToList(); + var list2 = db.Queryable().Where(it => + SqlFunc.Subqueryable() + .LeftJoin((i,y)=>i.ItemId==y.ItemId) + .Where((i,y) => y.ItemId== it.Id).Any() + ).ToList(); Console.WriteLine("#### Subquery End ####"); } diff --git a/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj b/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj index 6963c7221..bf12d1263 100644 --- a/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj +++ b/Src/Asp.Net/SqlServerTest/SqlServerTest.csproj @@ -196,6 +196,9 @@ Designer + + +