From ac52b65e106292e10e5b44dd819d56d07f239fd7 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Sat, 4 Mar 2017 00:54:19 +0800 Subject: [PATCH] - --- OrmTest/Config.cs | 13 +++++++++++++ OrmTest/ExpressionTest/Join.cs | 17 ++++++++++++----- OrmTest/OrmTest.csproj | 1 + .../DMLBuilder/LambadaQueryBuilder.cs | 8 ++++++-- SqlSugar/Databases/SqlServer/Db/SqlServerDb.cs | 2 +- SqlSugar/SqlSugarAccessory.cs | 2 +- 6 files changed, 34 insertions(+), 9 deletions(-) create mode 100644 OrmTest/Config.cs diff --git a/OrmTest/Config.cs b/OrmTest/Config.cs new file mode 100644 index 000000000..540bf35ba --- /dev/null +++ b/OrmTest/Config.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace OrmTest +{ + public class Config + { + public static string ConnectionString = "server=.;uid=sa;pwd=sasa;database=SqlSugar4XTest"; + } +} diff --git a/OrmTest/ExpressionTest/Join.cs b/OrmTest/ExpressionTest/Join.cs index 253514d00..053178a84 100644 --- a/OrmTest/ExpressionTest/Join.cs +++ b/OrmTest/ExpressionTest/Join.cs @@ -27,12 +27,19 @@ namespace OrmTest.ExpressionTest public void Q2() { - ExpressionContext contet = new ExpressionContext(); - SqlSugarClient db = new SqlSugarClient(new SystemTablesConfig() { ConnectionString="x" ,DbType= DbType.SqlServer }); - db.Queryable((st,sc)=> new object[] { - JoinType.Left,st.SchoolId==sc.Id - }); + using (var db = GetInstance()) + { + var list = db.Queryable((st, sc) => new object[] { + JoinType.Left,st.SchoolId==sc.Id + }).ToList(); + } + } + + public SqlSugarClient GetInstance() + { + SqlSugarClient db = new SqlSugarClient(new SystemTablesConfig() { ConnectionString = Config.ConnectionString, DbType = DbType.SqlServer }); + return db; } } } diff --git a/OrmTest/OrmTest.csproj b/OrmTest/OrmTest.csproj index c0cf825db..6038cfa52 100644 --- a/OrmTest/OrmTest.csproj +++ b/OrmTest/OrmTest.csproj @@ -43,6 +43,7 @@ + diff --git a/SqlSugar/Abstract/SqlBuilderProvider/DMLBuilder/LambadaQueryBuilder.cs b/SqlSugar/Abstract/SqlBuilderProvider/DMLBuilder/LambadaQueryBuilder.cs index ca0d3a961..8fa66021b 100644 --- a/SqlSugar/Abstract/SqlBuilderProvider/DMLBuilder/LambadaQueryBuilder.cs +++ b/SqlSugar/Abstract/SqlBuilderProvider/DMLBuilder/LambadaQueryBuilder.cs @@ -58,7 +58,11 @@ namespace SqlSugar { if (this.SelectValue.IsNullOrEmpty()) { - return string.Join(",", this.Conext.Database.DbMaintenance.GetColumnInfosByTableName(this.EntityName).Select(it => this.Conext.SqlBuilder.GetTranslationColumnName(it.ColumnName))); + string pre = null; + if (this.JoinQueryInfos.IsValuable() && this.JoinQueryInfos.Any(it => it.PreShortName.IsValuable())) { + pre = this.Conext.SqlBuilder.GetTranslationColumnName(this.JoinQueryInfos.Single(it => it.PreShortName.IsValuable()).PreShortName)+"."; + } + return string.Join(",", this.Conext.Database.DbMaintenance.GetColumnInfosByTableName(this.EntityName).Select(it => pre+this.Conext.SqlBuilder.GetTranslationColumnName(it.ColumnName))); } else return this.SelectValue; } @@ -99,7 +103,7 @@ namespace SqlSugar { return string.Format( this.JoinTemplate, - joinInfo.JoinIndex == 0 ? (joinInfo.PreShortName + " " + joinInfo.JoinType.ToString()+" ") : (joinInfo.JoinType.ToString() + " JOIN "), + joinInfo.JoinIndex == 1 ? (joinInfo.PreShortName + " " + joinInfo.JoinType.ToString()+" ") : (joinInfo.JoinType.ToString() + " JOIN "), joinInfo.TableName, joinInfo.ShortName + " " + TableWithString, joinInfo.JoinWhere); diff --git a/SqlSugar/Databases/SqlServer/Db/SqlServerDb.cs b/SqlSugar/Databases/SqlServer/Db/SqlServerDb.cs index b27718998..16685f50f 100644 --- a/SqlSugar/Databases/SqlServer/Db/SqlServerDb.cs +++ b/SqlSugar/Databases/SqlServer/Db/SqlServerDb.cs @@ -55,7 +55,7 @@ namespace SqlSugar { sqlCommand.Transaction = (SqlTransaction)this.Transaction; } - if (pars != null) + if (pars.IsValuable()) { IDataParameter[] ipars= ToIDbDataParameter(pars); sqlCommand.Parameters.AddRange((SqlParameter[])ipars); diff --git a/SqlSugar/SqlSugarAccessory.cs b/SqlSugar/SqlSugarAccessory.cs index bc2b190a4..e68ecf8a2 100644 --- a/SqlSugar/SqlSugarAccessory.cs +++ b/SqlSugar/SqlSugarAccessory.cs @@ -135,7 +135,7 @@ namespace SqlSugar var joinString = joinArray[i * 2 - 2]; joinInfo.ShortName = lambdaParameters[i-1].Name; joinInfo.JoinType = (JoinType) Enum.Parse(typeof (JoinType), joinString); - joinInfo.JoinWhere = joinArray[i * 2]; + joinInfo.JoinWhere = joinArray[i * 2-1]; joinInfo.JoinIndex = i; reval.Add((joinInfo)); }