From 7740d8d45aa34845ea6f262f329db0700fe58ffb Mon Sep 17 00:00:00 2001 From: sunkaixuna <610262374@qq.com> Date: Fri, 1 Oct 2021 22:20:40 +0800 Subject: [PATCH] Add multi-table query syntax sugar --- .../QueryableProvider/QueryableProvider.cs | 156 ++++++++++++++++++ Src/Asp.Net/SqlSugar/Interface/IQueryable.cs | 28 ++++ 2 files changed, 184 insertions(+) diff --git a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs index 5fca9c1fa..a1dd9fb24 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs @@ -2835,6 +2835,24 @@ namespace SqlSugar #region T3 public partial class QueryableProvider : QueryableProvider, ISugarQueryable { + public ISugarQueryable LeftJoin(Expression> joinExpression) + { + var result = InstanceFactory.GetQueryable(this.Context.CurrentConnectionConfig); + result.SqlBuilder = this.SqlBuilder; + result.Context = this.Context; + result.QueryBuilder.JoinQueryInfos.Add(GetJoinInfo(joinExpression, JoinType.Left)); + return result; + } + + public ISugarQueryable InnerJoin(Expression> joinExpression) + { + var result = InstanceFactory.GetQueryable(this.Context.CurrentConnectionConfig); + result.SqlBuilder = this.SqlBuilder; + result.Context = this.Context; + result.QueryBuilder.JoinQueryInfos.Add(GetJoinInfo(joinExpression, JoinType.Inner)); + return result; + } + #region Group public ISugarQueryable GroupBy(Expression> expression) { @@ -3227,6 +3245,24 @@ namespace SqlSugar #region T4 public partial class QueryableProvider : QueryableProvider, ISugarQueryable { + public ISugarQueryable LeftJoin(Expression> joinExpression) + { + var result = InstanceFactory.GetQueryable(this.Context.CurrentConnectionConfig); + result.SqlBuilder = this.SqlBuilder; + result.Context = this.Context; + result.QueryBuilder.JoinQueryInfos.Add(GetJoinInfo(joinExpression, JoinType.Left)); + return result; + } + + public ISugarQueryable InnerJoin(Expression> joinExpression) + { + var result = InstanceFactory.GetQueryable(this.Context.CurrentConnectionConfig); + result.SqlBuilder = this.SqlBuilder; + result.Context = this.Context; + result.QueryBuilder.JoinQueryInfos.Add(GetJoinInfo(joinExpression, JoinType.Inner)); + return result; + } + #region Where public new ISugarQueryable Where(Expression> expression) { @@ -3661,6 +3697,24 @@ namespace SqlSugar #region T5 public partial class QueryableProvider : QueryableProvider, ISugarQueryable { + public ISugarQueryable LeftJoin(Expression> joinExpression) + { + var result = InstanceFactory.GetQueryable(this.Context.CurrentConnectionConfig); + result.SqlBuilder = this.SqlBuilder; + result.Context = this.Context; + result.QueryBuilder.JoinQueryInfos.Add(GetJoinInfo(joinExpression, JoinType.Left)); + return result; + } + + public ISugarQueryable InnerJoin(Expression> joinExpression) + { + var result = InstanceFactory.GetQueryable(this.Context.CurrentConnectionConfig); + result.SqlBuilder = this.SqlBuilder; + result.Context = this.Context; + result.QueryBuilder.JoinQueryInfos.Add(GetJoinInfo(joinExpression, JoinType.Inner)); + return result; + } + #region Where public new ISugarQueryable Where(Expression> expression) { @@ -4057,6 +4111,23 @@ namespace SqlSugar #region T6 public partial class QueryableProvider : QueryableProvider, ISugarQueryable { + public ISugarQueryable LeftJoin(Expression> joinExpression) + { + var result = InstanceFactory.GetQueryable(this.Context.CurrentConnectionConfig); + result.SqlBuilder = this.SqlBuilder; + result.Context = this.Context; + result.QueryBuilder.JoinQueryInfos.Add(GetJoinInfo(joinExpression, JoinType.Left)); + return result; + } + + public ISugarQueryable InnerJoin(Expression> joinExpression) + { + var result = InstanceFactory.GetQueryable(this.Context.CurrentConnectionConfig); + result.SqlBuilder = this.SqlBuilder; + result.Context = this.Context; + result.QueryBuilder.JoinQueryInfos.Add(GetJoinInfo(joinExpression, JoinType.Inner)); + return result; + } #region Where public new ISugarQueryable Where(Expression> expression) { @@ -4489,6 +4560,23 @@ namespace SqlSugar #region T7 public partial class QueryableProvider : QueryableProvider, ISugarQueryable { + public ISugarQueryable LeftJoin(Expression> joinExpression) + { + var result = InstanceFactory.GetQueryable(this.Context.CurrentConnectionConfig); + result.SqlBuilder = this.SqlBuilder; + result.Context = this.Context; + result.QueryBuilder.JoinQueryInfos.Add(GetJoinInfo(joinExpression, JoinType.Left)); + return result; + } + + public ISugarQueryable InnerJoin(Expression> joinExpression) + { + var result = InstanceFactory.GetQueryable(this.Context.CurrentConnectionConfig); + result.SqlBuilder = this.SqlBuilder; + result.Context = this.Context; + result.QueryBuilder.JoinQueryInfos.Add(GetJoinInfo(joinExpression, JoinType.Inner)); + return result; + } #region Where public new ISugarQueryable Where(Expression> expression) { @@ -4912,6 +5000,23 @@ namespace SqlSugar #region T8 public partial class QueryableProvider : QueryableProvider, ISugarQueryable { + public ISugarQueryable LeftJoin(Expression> joinExpression) + { + var result = InstanceFactory.GetQueryable(this.Context.CurrentConnectionConfig); + result.SqlBuilder = this.SqlBuilder; + result.Context = this.Context; + result.QueryBuilder.JoinQueryInfos.Add(GetJoinInfo(joinExpression, JoinType.Left)); + return result; + } + + public ISugarQueryable InnerJoin(Expression> joinExpression) + { + var result = InstanceFactory.GetQueryable(this.Context.CurrentConnectionConfig); + result.SqlBuilder = this.SqlBuilder; + result.Context = this.Context; + result.QueryBuilder.JoinQueryInfos.Add(GetJoinInfo(joinExpression, JoinType.Inner)); + return result; + } #region Where public new ISugarQueryable Where(Expression> expression) { @@ -5368,6 +5473,23 @@ namespace SqlSugar #region T9 public partial class QueryableProvider : QueryableProvider, ISugarQueryable { + public ISugarQueryable LeftJoin(Expression> joinExpression) + { + var result = InstanceFactory.GetQueryable(this.Context.CurrentConnectionConfig); + result.SqlBuilder = this.SqlBuilder; + result.Context = this.Context; + result.QueryBuilder.JoinQueryInfos.Add(GetJoinInfo(joinExpression, JoinType.Left)); + return result; + } + + public ISugarQueryable InnerJoin(Expression> joinExpression) + { + var result = InstanceFactory.GetQueryable(this.Context.CurrentConnectionConfig); + result.SqlBuilder = this.SqlBuilder; + result.Context = this.Context; + result.QueryBuilder.JoinQueryInfos.Add(GetJoinInfo(joinExpression, JoinType.Inner)); + return result; + } #region Where public new ISugarQueryable Where(Expression> expression) { @@ -5760,6 +5882,23 @@ namespace SqlSugar #region T10 public partial class QueryableProvider : QueryableProvider, ISugarQueryable { + public ISugarQueryable LeftJoin(Expression> joinExpression) + { + var result = InstanceFactory.GetQueryable(this.Context.CurrentConnectionConfig); + result.SqlBuilder = this.SqlBuilder; + result.Context = this.Context; + result.QueryBuilder.JoinQueryInfos.Add(GetJoinInfo(joinExpression, JoinType.Left)); + return result; + } + + public ISugarQueryable InnerJoin(Expression> joinExpression) + { + var result = InstanceFactory.GetQueryable(this.Context.CurrentConnectionConfig); + result.SqlBuilder = this.SqlBuilder; + result.Context = this.Context; + result.QueryBuilder.JoinQueryInfos.Add(GetJoinInfo(joinExpression, JoinType.Inner)); + return result; + } #region Where public new ISugarQueryable Where(Expression> expression) { @@ -6176,6 +6315,23 @@ namespace SqlSugar #region T11 public partial class QueryableProvider : QueryableProvider, ISugarQueryable { + public ISugarQueryable LeftJoin(Expression> joinExpression) + { + var result = InstanceFactory.GetQueryable(this.Context.CurrentConnectionConfig); + result.SqlBuilder = this.SqlBuilder; + result.Context = this.Context; + result.QueryBuilder.JoinQueryInfos.Add(GetJoinInfo(joinExpression, JoinType.Left)); + return result; + } + + public ISugarQueryable InnerJoin(Expression> joinExpression) + { + var result = InstanceFactory.GetQueryable(this.Context.CurrentConnectionConfig); + result.SqlBuilder = this.SqlBuilder; + result.Context = this.Context; + result.QueryBuilder.JoinQueryInfos.Add(GetJoinInfo(joinExpression, JoinType.Inner)); + return result; + } #region Where public new ISugarQueryable Where(Expression> expression) { diff --git a/Src/Asp.Net/SqlSugar/Interface/IQueryable.cs b/Src/Asp.Net/SqlSugar/Interface/IQueryable.cs index c56c84a52..d3a4771bc 100644 --- a/Src/Asp.Net/SqlSugar/Interface/IQueryable.cs +++ b/Src/Asp.Net/SqlSugar/Interface/IQueryable.cs @@ -269,6 +269,9 @@ namespace SqlSugar } public partial interface ISugarQueryable : ISugarQueryable { + ISugarQueryable LeftJoin(Expression> joinExpression); + ISugarQueryable InnerJoin(Expression> joinExpression); + #region Where new ISugarQueryable Where(Expression> expression); ISugarQueryable Where(Expression> expression); @@ -365,6 +368,9 @@ namespace SqlSugar } public partial interface ISugarQueryable : ISugarQueryable { + ISugarQueryable LeftJoin(Expression> joinExpression); + ISugarQueryable InnerJoin(Expression> joinExpression); + #region Where new ISugarQueryable Where(Expression> expression); ISugarQueryable Where(Expression> expression); @@ -468,6 +474,9 @@ namespace SqlSugar } public partial interface ISugarQueryable : ISugarQueryable { + ISugarQueryable LeftJoin(Expression> joinExpression); + ISugarQueryable InnerJoin(Expression> joinExpression); + #region Where new ISugarQueryable Where(Expression> expression); ISugarQueryable Where(Expression> expression); @@ -567,6 +576,9 @@ namespace SqlSugar } public partial interface ISugarQueryable : ISugarQueryable { + ISugarQueryable LeftJoin(Expression> joinExpression); + ISugarQueryable InnerJoin(Expression> joinExpression); + #region Where new ISugarQueryable Where(Expression> expression); ISugarQueryable Where(Expression> expression); @@ -673,6 +685,9 @@ namespace SqlSugar } public partial interface ISugarQueryable : ISugarQueryable { + ISugarQueryable LeftJoin(Expression> joinExpression); + ISugarQueryable InnerJoin(Expression> joinExpression); + #region Where new ISugarQueryable Where(Expression> expression); ISugarQueryable Where(Expression> expression); @@ -778,6 +793,9 @@ namespace SqlSugar } public partial interface ISugarQueryable : ISugarQueryable { + ISugarQueryable LeftJoin(Expression> joinExpression); + ISugarQueryable InnerJoin(Expression> joinExpression); + #region Where new ISugarQueryable Where(Expression> expression); ISugarQueryable Where(Expression> expression); @@ -891,6 +909,9 @@ namespace SqlSugar #region 9-12 public partial interface ISugarQueryable : ISugarQueryable { + ISugarQueryable LeftJoin(Expression> joinExpression); + ISugarQueryable InnerJoin(Expression> joinExpression); + #region Where new ISugarQueryable Where(Expression> expression); ISugarQueryable Where(Expression> expression); @@ -982,6 +1003,9 @@ namespace SqlSugar } public partial interface ISugarQueryable : ISugarQueryable { + ISugarQueryable LeftJoin(Expression> joinExpression); + ISugarQueryable InnerJoin(Expression> joinExpression); + #region Where new ISugarQueryable Where(Expression> expression); ISugarQueryable Where(Expression> expression); @@ -1078,6 +1102,9 @@ namespace SqlSugar } public partial interface ISugarQueryable : ISugarQueryable { + ISugarQueryable LeftJoin(Expression> joinExpression); + ISugarQueryable InnerJoin(Expression> joinExpression); + #region Where new ISugarQueryable Where(Expression> expression); ISugarQueryable Where(Expression> expression); @@ -1179,6 +1206,7 @@ namespace SqlSugar } public partial interface ISugarQueryable : ISugarQueryable { + #region Where new ISugarQueryable Where(Expression> expression); ISugarQueryable Where(Expression> expression);