diff --git a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs index 8da71055e..5aa0b0554 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs @@ -91,7 +91,6 @@ namespace SqlSugar }); return result; } - public Task ExecuteReturnIdentityAsync() { Task result = new Task(() => @@ -101,7 +100,6 @@ namespace SqlSugar }); return result; } - public Task ExecuteReturnEntityAsync() { Task result = new Task(() => @@ -111,7 +109,6 @@ namespace SqlSugar }); return result; } - public Task ExecuteCommandIdentityIntoEntityAsync() { Task result = new Task(() => @@ -121,7 +118,6 @@ namespace SqlSugar }); return result; } - public Task ExecuteReturnBigIdentityAsync() { Task result = new Task(() => diff --git a/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs index bf0a19a17..a71bbe623 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs @@ -8,12 +8,12 @@ using System.Threading.Tasks; namespace SqlSugar { - public class UpdateableProvider : IUpdateable + public class UpdateableProvider : IUpdateable where T : class, new() { public SqlSugarClient Context { get; internal set; } public EntityInfo EntityInfo { get; internal set; } public ISqlBuilder SqlBuilder { get; internal set; } - public UpdateBuilder UpdateBuilder { get; 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,8 +33,14 @@ 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 Task ExecuteCommandAsync() + { + Task result = new Task(() => + { + IUpdateable asyncInsertable = CopyUpdateable(); + return asyncInsertable.ExecuteCommand(); + }); + return result; } public IUpdateable AS(string tableName) { @@ -87,7 +93,7 @@ namespace SqlSugar if (this.WhereColumnList == null) this.WhereColumnList = new List(); foreach (var item in whereColumns) { - this.WhereColumnList.Add(this.Context.EntityProvider.GetDbColumnName(item)); + this.WhereColumnList.Add(this.Context.EntityProvider.GetDbColumnName(item)); } return this; } @@ -271,7 +277,8 @@ namespace SqlSugar } private List GetPrimaryKeys() { - if (this.WhereColumnList.IsValuable()) { + if (this.WhereColumnList.IsValuable()) + { return this.WhereColumnList; } if (this.Context.IsSystemTablesConfig) @@ -310,8 +317,19 @@ namespace SqlSugar asyncContext.Ado.LogEventCompleted = this.Context.Ado.LogEventCompleted; asyncContext.Ado.ProcessingEventStartingSQL = this.Context.Ado.ProcessingEventStartingSQL; - - return null; + var asyncUpdateable = asyncContext.Updateable(this.UpdateObjs); + var asyncInsertableBuilder = asyncUpdateable.UpdateBuilder; + asyncInsertableBuilder.DbColumnInfoList = this.UpdateBuilder.DbColumnInfoList; + asyncInsertableBuilder.IsNoUpdateNull = this.UpdateBuilder.IsNoUpdateNull; + asyncInsertableBuilder.Parameters = this.UpdateBuilder.Parameters; + asyncInsertableBuilder.sql = this.UpdateBuilder.sql; + asyncInsertableBuilder.WhereValues = this.UpdateBuilder.WhereValues; + asyncInsertableBuilder.TableWithString = this.UpdateBuilder.TableWithString; + asyncInsertableBuilder.TableName = this.UpdateBuilder.TableName; + asyncInsertableBuilder.PrimaryKeys = this.UpdateBuilder.PrimaryKeys; + asyncInsertableBuilder.IsOffIdentity = this.UpdateBuilder.IsOffIdentity; + asyncInsertableBuilder.SetValues = this.UpdateBuilder.SetValues; + return asyncUpdateable; } } } diff --git a/Src/Asp.Net/SqlSugar/Interface/IUpdateable.cs b/Src/Asp.Net/SqlSugar/Interface/IUpdateable.cs index ace46a26e..1de0a953d 100644 --- a/Src/Asp.Net/SqlSugar/Interface/IUpdateable.cs +++ b/Src/Asp.Net/SqlSugar/Interface/IUpdateable.cs @@ -7,7 +7,7 @@ using System.Threading.Tasks; namespace SqlSugar { - public interface IUpdateable + public interface IUpdateable where T : class, new() { UpdateBuilder UpdateBuilder { get; set; } int ExecuteCommand();