diff --git a/Src/Asp.Net/SqlSugar/Abstract/SaveableProvider/Storageable.cs b/Src/Asp.Net/SqlSugar/Abstract/SaveableProvider/Storageable.cs index 336a37dae..16024daa1 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/SaveableProvider/Storageable.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/SaveableProvider/Storageable.cs @@ -125,6 +125,9 @@ namespace SqlSugar var other = messageList.Where(it => it.StorageType == StorageType.Other).ToList(); StorageableResult result = new StorageableResult() { + _IsWhereColumn= this.whereExpression != null, + _AsName =asname, + _Context=this.Context, AsDeleteable = this.Context.Deleteable().AS(asname), AsUpdateable = this.Context.Updateable(update.Select(it => it.Item).ToList()).AS(asname), AsInsertable = this.Context.Insertable(inset.Select(it => it.Item).ToList()).AS(asname), diff --git a/Src/Asp.Net/SqlSugar/Interface/IStorageable.cs b/Src/Asp.Net/SqlSugar/Interface/IStorageable.cs index 090f64fd8..823cea16b 100644 --- a/Src/Asp.Net/SqlSugar/Interface/IStorageable.cs +++ b/Src/Asp.Net/SqlSugar/Interface/IStorageable.cs @@ -88,5 +88,28 @@ namespace SqlSugar public IInsertable AsInsertable { get; set; } public IUpdateable AsUpdateable { get; set; } public IDeleteable AsDeleteable { get; set; } + internal bool _IsWhereColumn { get; set; } + internal string _AsName { get; set; } + internal SqlSugarProvider _Context { get; set; } + + public int BulkCopy() + { + return this._Context.Fastest().AS(_AsName).BulkCopy(InsertList.Select(it=>it.Item).ToList()); + } + public Task BulkCopyAsync() + { + return this._Context.Fastest().AS(_AsName).BulkCopyAsync(InsertList.Select(it => it.Item).ToList()); + } + + public int BulkUpdate() + { + Check.Exception(_IsWhereColumn, "Storageable.BulkCopy no support WhereColumns"); + return this._Context.Fastest().AS(_AsName).BulkUpdate(UpdateList.Select(it => it.Item).ToList()); + } + public Task BulkUpdateAsync() + { + Check.Exception(_IsWhereColumn, "Storageable.BulkCopy no support WhereColumns"); + return this._Context.Fastest().AS(_AsName).BulkUpdateAsync(UpdateList.Select(it => it.Item).ToList()); + } } }