From 587d69d41d5a9363a75e712f740e818c885e8e92 Mon Sep 17 00:00:00 2001 From: sunkaixuna <610262374@qq.com> Date: Thu, 5 Aug 2021 12:27:33 +0800 Subject: [PATCH] Update db.Inserable.UseParameter --- .../OracleTest/Demo/Demo3_Insertable.cs | 2 ++ .../SqlServerTest/Demo/Demo3_Insertable.cs | 2 +- .../InsertableProvider/ParameterInsertable.cs | 18 +++++++++++++++--- .../Abstract/SugarProvider/SqlSugarProvider.cs | 12 ++++++++---- 4 files changed, 26 insertions(+), 8 deletions(-) diff --git a/Src/Asp.Net/OracleTest/Demo/Demo3_Insertable.cs b/Src/Asp.Net/OracleTest/Demo/Demo3_Insertable.cs index 1e0596206..e723d4871 100644 --- a/Src/Asp.Net/OracleTest/Demo/Demo3_Insertable.cs +++ b/Src/Asp.Net/OracleTest/Demo/Demo3_Insertable.cs @@ -40,6 +40,8 @@ namespace OrmTest db.Insertable(insertObj).IgnoreColumns(it => new { it.CreateTime }).ExecuteReturnIdentity();//get identity db.Insertable(insertObj).IgnoreColumns("CreateTime").ExecuteReturnIdentity(); + var x=db.Insertable(updateObjs).RemoveDataCache().IgnoreColumns(it => it.CreateTime).UseParameter().ExecuteCommand(); + //Only insert Name and Price db.Insertable(insertObj).InsertColumns(it => new { it.Name, it.Price }).ExecuteReturnIdentity(); db.Insertable(insertObj).InsertColumns("Name", "Price").ExecuteReturnIdentity(); diff --git a/Src/Asp.Net/SqlServerTest/Demo/Demo3_Insertable.cs b/Src/Asp.Net/SqlServerTest/Demo/Demo3_Insertable.cs index e442f4c4c..7d8fb8a79 100644 --- a/Src/Asp.Net/SqlServerTest/Demo/Demo3_Insertable.cs +++ b/Src/Asp.Net/SqlServerTest/Demo/Demo3_Insertable.cs @@ -36,7 +36,7 @@ namespace OrmTest new Order() { Id = 12, Name = "order12" , Price=0} }; - db.Insertable(insertObjs).RemoveDataCache().IgnoreColumns(it=>it.CreateTime).UseParameter().ExecuteCommand(); + var x=db.Insertable(insertObjs).RemoveDataCache().IgnoreColumns(it=>it.CreateTime).UseParameter().ExecuteCommand(); //Ignore CreateTime db.Insertable(insertObj).IgnoreColumns(it => new { it.CreateTime }).ExecuteReturnIdentity();//get identity diff --git a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/ParameterInsertable.cs b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/ParameterInsertable.cs index 63a3134bb..97a963144 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/ParameterInsertable.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/ParameterInsertable.cs @@ -20,6 +20,8 @@ namespace SqlSugar var objects = inserable.InsertObjs; this.Context.Utilities.PageEach(objects, 60, pagelist => { + if (this.Context.CurrentConnectionConfig.DbType == DbType.Oracle) + this.Context.AddQueue("begin"); foreach (var item in pagelist) { var itemable = this.Context.Insertable(item); @@ -28,9 +30,13 @@ namespace SqlSugar (itemable as InsertableProvider).RemoveCacheFunc = removeCacheFunc; itemable.AddQueue(); } - result+=this.Context.SaveQueues(false); + if (this.Context.CurrentConnectionConfig.DbType == DbType.Oracle) + this.Context.AddQueue("end \r\n"); + result +=this.Context.SaveQueues(false); }); - return 0; + if (this.Context.CurrentConnectionConfig.DbType == DbType.Oracle) + return objects.Length; + return result; } public async Task ExecuteCommandAsync() { @@ -42,6 +48,8 @@ namespace SqlSugar var objects = inserable.InsertObjs; await this.Context.Utilities.PageEachAsync(objects, 60,async pagelist => { + if (this.Context.CurrentConnectionConfig.DbType == DbType.Oracle) + this.Context.AddQueue("Begin"); foreach (var item in pagelist) { var itemable = this.Context.Insertable(item); @@ -50,7 +58,11 @@ namespace SqlSugar (itemable as InsertableProvider).RemoveCacheFunc = removeCacheFunc; itemable.AddQueue(); } - result+= await this.Context.SaveQueuesAsync(false); + if (this.Context.CurrentConnectionConfig.DbType == DbType.Oracle) + this.Context.AddQueue("End"); + result += await this.Context.SaveQueuesAsync(false); + if (this.Context.CurrentConnectionConfig.DbType == DbType.Oracle) + return objects.Length; return result; }); return result; diff --git a/Src/Asp.Net/SqlSugar/Abstract/SugarProvider/SqlSugarProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/SugarProvider/SqlSugarProvider.cs index dc5d7e48a..6caf3759d 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/SugarProvider/SqlSugarProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/SugarProvider/SqlSugarProvider.cs @@ -1048,10 +1048,10 @@ namespace SqlSugar { try { - if (this.CurrentConnectionConfig.DbType == DbType.Oracle) - { - throw new Exception("Oracle no support SaveQueues"); - } + //if (this.CurrentConnectionConfig.DbType == DbType.Oracle) + //{ + // throw new Exception("Oracle no support SaveQueues"); + //} if (this.Queues == null || this.Queues.Count == 0) return default(T); isTran = isTran && this.Ado.Transaction == null; if (isTran) this.Ado.BeginTran(); @@ -1084,6 +1084,10 @@ namespace SqlSugar .TrimEnd('\r') .TrimEnd('\n') .TrimEnd(';') + ";"; + if (itemSql == "begin;" ) + { + itemSql = itemSql.TrimEnd(';')+"\n"; + } sqlBuilder.AppendLine(itemSql); index++; }