From 5c27d8babba742d389d394b146d9691abcb78105 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Sat, 21 Apr 2018 11:24:23 +0800 Subject: [PATCH] Add IUpdateable Where(string whereSql,object parameters=null) --- Src/Asp.Net/SqlServerTest/Demos/2_Update.cs | 2 ++ .../Abstract/SqlBuilderProvider/SqlBuilderProvider.cs | 6 ++++++ .../Abstract/UpdateProvider/UpdateableProvider.cs | 11 +++++++++++ Src/Asp.Net/SqlSugar/Interface/ISqlBuilder.cs | 2 ++ Src/Asp.Net/SqlSugar/Interface/IUpdateable.cs | 1 + 5 files changed, 22 insertions(+) diff --git a/Src/Asp.Net/SqlServerTest/Demos/2_Update.cs b/Src/Asp.Net/SqlServerTest/Demos/2_Update.cs index d9e1c042a..9dcf7aa64 100644 --- a/Src/Asp.Net/SqlServerTest/Demos/2_Update.cs +++ b/Src/Asp.Net/SqlServerTest/Demos/2_Update.cs @@ -59,6 +59,8 @@ namespace OrmTest.Demo //Column is null no update db.Updateable(updateObj).Where(true).ExecuteCommand(); + //sql + db.Updateable(updateObj).Where("id=@x",new { x="1"}).ExecuteCommand(); var t12 = db.Updateable().AS("Student").UpdateColumns(it => new School() { Name = "jack" }).Where(it => it.Id == 1).ExecuteCommandAsync(); t12.Wait(); diff --git a/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/SqlBuilderProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/SqlBuilderProvider.cs index c58a64c6a..1a637a826 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/SqlBuilderProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/SqlBuilderProvider/SqlBuilderProvider.cs @@ -86,6 +86,12 @@ namespace SqlSugar { return "t"; } + + + public string GetWhere(string fieldName,string conditionalType,int? parameterIndex=null) + { + return string.Format(" {0} {1} {2}{3} ",fieldName,conditionalType,this.SqlParameterKeyWord,fieldName+ parameterIndex); + } public virtual string GetUnionAllSql(List sqlList) { return string.Join("UNION ALL \r\n", sqlList); diff --git a/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs index d6de42267..509edbb47 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs @@ -196,6 +196,17 @@ namespace SqlSugar return this; } + public IUpdateable Where(string whereSql, object parameters = null) + { + if (whereSql.HasValue()) { + UpdateBuilder.WhereValues.Add(whereSql); + } + if (parameters != null) { + UpdateBuilder.Parameters.AddRange(Context.Ado.GetParameters(parameters)); + } + return this; + } + public IUpdateable With(string lockString) { if (this.Context.CurrentConnectionConfig.DbType == DbType.SqlServer) diff --git a/Src/Asp.Net/SqlSugar/Interface/ISqlBuilder.cs b/Src/Asp.Net/SqlSugar/Interface/ISqlBuilder.cs index 3de847d24..b866e0e5e 100644 --- a/Src/Asp.Net/SqlSugar/Interface/ISqlBuilder.cs +++ b/Src/Asp.Net/SqlSugar/Interface/ISqlBuilder.cs @@ -35,6 +35,8 @@ namespace SqlSugar string GetNoTranslationColumnName(string name); string GetPackTable(string sql,string shortName); string GetDefaultShortName(); + + string GetWhere(string fieldName, string conditionalType, int? parameterIndex = null); string GetUnionAllSql(List sqlList); string GetUnionSql(List sqlList); void RepairReplicationParameters(ref string appendSql, SugarParameter[] parameters, int addIndex); diff --git a/Src/Asp.Net/SqlSugar/Interface/IUpdateable.cs b/Src/Asp.Net/SqlSugar/Interface/IUpdateable.cs index e01176529..14608f079 100644 --- a/Src/Asp.Net/SqlSugar/Interface/IUpdateable.cs +++ b/Src/Asp.Net/SqlSugar/Interface/IUpdateable.cs @@ -18,6 +18,7 @@ namespace SqlSugar IUpdateable With(string lockString); IUpdateable Where(bool isNoUpdateNull,bool IsOffIdentity = false); IUpdateable Where(Expression> expression); + IUpdateable Where(string whereSql,object parameters=null); /// /// Non primary key entity update function ///