From 09e37a23ad06ee4af42f1869f87db93dd079c350 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Tue, 5 Sep 2017 12:32:16 +0800 Subject: [PATCH] - --- .../InsertableProvider/InsertableProvider.cs | 99 +++++++++---------- .../UpdateProvider/UpdateableProvider.cs | 17 +++- Src/Asp.Net/SqlSugar/Interface/IUpdateable.cs | 2 + 3 files changed, 67 insertions(+), 51 deletions(-) diff --git a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs index cec7fbcc2..8da71055e 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs @@ -82,6 +82,55 @@ namespace SqlSugar this.Context.EntityProvider.GetProperty(identityKey).SetValue(result,setValue, null); return idValue>0; } + public Task ExecuteCommandAsync() + { + Task result = new Task(() => + { + IInsertable asyncInsertable = CopyInsertable(); + return asyncInsertable.ExecuteCommand(); + }); + return result; + } + + public Task ExecuteReturnIdentityAsync() + { + Task result = new Task(() => + { + IInsertable asyncInsertable = CopyInsertable(); + return asyncInsertable.ExecuteReturnIdentity(); + }); + return result; + } + + public Task ExecuteReturnEntityAsync() + { + Task result = new Task(() => + { + IInsertable asyncInsertable = CopyInsertable(); + return asyncInsertable.ExecuteReturnEntity(); + }); + return result; + } + + public Task ExecuteCommandIdentityIntoEntityAsync() + { + Task result = new Task(() => + { + IInsertable asyncInsertable = CopyInsertable(); + return asyncInsertable.ExecuteCommandIdentityIntoEntity(); + }); + return result; + } + + public Task ExecuteReturnBigIdentityAsync() + { + Task result = new Task(() => + { + IInsertable asyncInsertable = CopyInsertable(); + return asyncInsertable.ExecuteReturnBigIdentity(); + }); + return result; + } #endregion #region Setting @@ -276,56 +325,6 @@ namespace SqlSugar asyncInsertableBuilder.TableWithString = this.InsertBuilder.TableWithString; return asyncInsertable; } - - public Task ExecuteCommandAsync() - { - Task result = new Task(() => - { - IInsertable asyncInsertable = CopyInsertable(); - return asyncInsertable.ExecuteCommand(); - }); - return result; - } - - public Task ExecuteReturnIdentityAsync() - { - Task result = new Task(() => - { - IInsertable asyncInsertable = CopyInsertable(); - return asyncInsertable.ExecuteReturnIdentity(); - }); - return result; - } - - public Task ExecuteReturnEntityAsync() - { - Task result = new Task(() => - { - IInsertable asyncInsertable = CopyInsertable(); - return asyncInsertable.ExecuteReturnEntity(); - }); - return result; - } - - public Task ExecuteCommandIdentityIntoEntityAsync() - { - Task result = new Task(() => - { - IInsertable asyncInsertable = CopyInsertable(); - return asyncInsertable.ExecuteCommandIdentityIntoEntity(); - }); - return result; - } - - public Task ExecuteReturnBigIdentityAsync() - { - Task result = new Task(() => - { - IInsertable asyncInsertable = CopyInsertable(); - return asyncInsertable.ExecuteReturnBigIdentity(); - }); - return result; - } #endregion } } diff --git a/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs index 1f953b691..bf0a19a17 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs @@ -13,7 +13,7 @@ namespace SqlSugar public SqlSugarClient Context { get; internal set; } public EntityInfo EntityInfo { get; internal set; } public ISqlBuilder SqlBuilder { get; internal set; } - public UpdateBuilder UpdateBuilder { get; internal set; } + public UpdateBuilder UpdateBuilder { get; set; } public IAdo Ado { get { return Context.Ado; } } public T[] UpdateObjs { get; set; } public bool IsMappingTable { get { return this.Context.MappingTables != null && this.Context.MappingTables.Any(); } } @@ -33,6 +33,9 @@ namespace SqlSugar Check.Exception(UpdateBuilder.WhereValues.IsNullOrEmpty() && GetPrimaryKeys().IsNullOrEmpty(), "You cannot have no primary key and no conditions"); return this.Ado.ExecuteCommand(sql, UpdateBuilder.Parameters == null ? null : UpdateBuilder.Parameters.ToArray()); } + public Task ExecuteCommandAsync() { + return null; + } public IUpdateable AS(string tableName) { var entityName = typeof(T).Name; @@ -298,5 +301,17 @@ namespace SqlSugar this.Context.MappingTables = OldMappingTableList; } } + private IUpdateable CopyUpdateable() + { + var asyncContext = this.Context.CopyContext(this.Context.RewritableMethods.TranslateCopy(this.Context.CurrentConnectionConfig)); + asyncContext.CurrentConnectionConfig.IsAutoCloseConnection = true; + asyncContext.Ado.IsEnableLogEvent = this.Context.Ado.IsEnableLogEvent; + asyncContext.Ado.LogEventStarting = this.Context.Ado.LogEventStarting; + asyncContext.Ado.LogEventCompleted = this.Context.Ado.LogEventCompleted; + asyncContext.Ado.ProcessingEventStartingSQL = this.Context.Ado.ProcessingEventStartingSQL; + + + return null; + } } } diff --git a/Src/Asp.Net/SqlSugar/Interface/IUpdateable.cs b/Src/Asp.Net/SqlSugar/Interface/IUpdateable.cs index 1304fbee5..ace46a26e 100644 --- a/Src/Asp.Net/SqlSugar/Interface/IUpdateable.cs +++ b/Src/Asp.Net/SqlSugar/Interface/IUpdateable.cs @@ -9,7 +9,9 @@ namespace SqlSugar { public interface IUpdateable { + UpdateBuilder UpdateBuilder { get; set; } int ExecuteCommand(); + Task ExecuteCommandAsync(); IUpdateable AS(string tableName); IUpdateable With(string lockString); IUpdateable Where(bool isNoUpdateNull,bool IsOffIdentity = false);