diff --git a/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs b/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs index e1c483831..13c117409 100644 --- a/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs +++ b/Src/Asp.Net/SqlServerTest/Demos/1_Query.cs @@ -282,6 +282,17 @@ namespace OrmTest.Demo }) .Select((st, sc) => new { id=st.Id,school=sc }).ToList(); + + var list5 = db.Queryable((st, sc) => new object[] { + JoinType.Left,st.SchoolId==sc.Id + }).AS("STUDENT").AS("SCHOOL") +.Select((st, sc) => new { id = st.Id, school = sc }).ToList(); + + + var list6 = db.Queryable((st, sc) => new object[] { + JoinType.Left,st.SchoolId==sc.Id + }).With(SqlWith.NoLock).AS("STUDENT").AS("SCHOOL") +.Select((st, sc) => new { id = st.Id, school = sc }).ToList(); } public static void Join() { diff --git a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs index d153d6785..f42846455 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryableProvider.cs @@ -108,7 +108,6 @@ namespace SqlSugar }); return this; } - public virtual ISugarQueryable Where(Expression> expression) { this._Where(expression); @@ -1217,26 +1216,31 @@ namespace SqlSugar _As(tableName, entityName); return this; } - public new ISugarQueryable Filter(string FilterName, bool isDisabledGobalFilter = false) { + public new ISugarQueryable Filter(string FilterName, bool isDisabledGobalFilter = false) + { _Filter(FilterName, isDisabledGobalFilter); return this; } - public new ISugarQueryable AddParameters(object parameters) { + public new ISugarQueryable AddParameters(object parameters) + { if (parameters != null) QueryBuilder.Parameters.AddRange(Context.Ado.GetParameters(parameters)); return this; } - public new ISugarQueryable AddParameters(SugarParameter[] parameters) { + public new ISugarQueryable AddParameters(SugarParameter[] parameters) + { if (parameters != null) QueryBuilder.Parameters.AddRange(parameters); return this; } - public new ISugarQueryable AddParameters(List parameters) { + public new ISugarQueryable AddParameters(List parameters) + { if (parameters != null) QueryBuilder.Parameters.AddRange(parameters); return this; } - public new ISugarQueryable AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left) { + public new ISugarQueryable AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left) + { QueryBuilder.JoinIndex = +1; QueryBuilder.JoinQueryInfos .Add(new JoinQueryInfo() @@ -1249,6 +1253,11 @@ namespace SqlSugar }); return this; } + public new ISugarQueryable With(string withString) + { + base.With(withString); + return this; + } #endregion } #endregion diff --git a/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs b/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs index f2eed7410..0c8761cd4 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/QueryBuilder.cs @@ -316,7 +316,7 @@ namespace SqlSugar this.JoinTemplate, joinInfo.JoinType.ToString() + UtilConstants.Space, Builder.GetTranslationTableName(joinInfo.TableName) + UtilConstants.Space, - joinInfo.ShortName + UtilConstants.Space + joinInfo.TableWithString, + joinInfo.ShortName + UtilConstants.Space + TableWithString, joinInfo.JoinWhere); } public virtual void Clear() diff --git a/Src/Asp.Net/SqlSugar/Entities/JoinQueryInfo.cs b/Src/Asp.Net/SqlSugar/Entities/JoinQueryInfo.cs index bb70dbfb4..a2d4e3806 100644 --- a/Src/Asp.Net/SqlSugar/Entities/JoinQueryInfo.cs +++ b/Src/Asp.Net/SqlSugar/Entities/JoinQueryInfo.cs @@ -12,6 +12,5 @@ namespace SqlSugar public string ShortName { get; set; } public int JoinIndex { get; set; } public string JoinWhere { get; set; } - public string TableWithString { get; set; } } } diff --git a/Src/Asp.Net/SqlSugar/Interface/IQueryable.cs b/Src/Asp.Net/SqlSugar/Interface/IQueryable.cs index 6d0cf1394..9c55a2abb 100644 --- a/Src/Asp.Net/SqlSugar/Interface/IQueryable.cs +++ b/Src/Asp.Net/SqlSugar/Interface/IQueryable.cs @@ -168,6 +168,7 @@ namespace SqlSugar new ISugarQueryable AddParameters(SugarParameter[] parameters); new ISugarQueryable AddParameters(List parameters); new ISugarQueryable AddJoinInfo(string tableName, string shortName, string joinWhere, JoinType type = JoinType.Left); + new ISugarQueryable With(string withString); #endregion } public partial interface ISugarQueryable : ISugarQueryable