From d5d44b4475849108e31ba9b8f01ff526c12aebd1 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Thu, 14 Dec 2023 17:17:16 +0800 Subject: [PATCH] Synchronization code --- .../Abstract/SaveableProvider/Storageable.cs | 32 +++++++++++++++++++ .../SqlSugar/Interface/IStorageable.cs | 2 ++ 2 files changed, 34 insertions(+) diff --git a/Src/Asp.Net/SqlSugar/Abstract/SaveableProvider/Storageable.cs b/Src/Asp.Net/SqlSugar/Abstract/SaveableProvider/Storageable.cs index d26dc000e..7582c0127 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/SaveableProvider/Storageable.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/SaveableProvider/Storageable.cs @@ -151,6 +151,38 @@ namespace SqlSugar result += updateRow; return result; } + public T ExecuteReturnEntity() + { + var x = this.ToStorage(); + if (x.InsertList?.Any()==true) + { + var data = x.AsInsertable.ExecuteReturnEntity(); + x.AsUpdateable.ExecuteCommand(); + return data; + } + else + { + x.AsInsertable.ExecuteCommand(); + x.AsUpdateable.ExecuteCommand(); + return x.UpdateList.FirstOrDefault()?.Item; + } + } + public async Task ExecuteReturnEntityAsync() + { + var x = this.ToStorage(); + if (x.InsertList.Any()) + { + var data = await x.AsInsertable.ExecuteReturnEntityAsync(); + await x.AsUpdateable.ExecuteCommandAsync(); + return data; + } + else + { + await x.AsInsertable.ExecuteCommandAsync(); + await x.AsUpdateable.ExecuteCommandAsync(); + return x.UpdateList.FirstOrDefault()?.Item; + } + } public Task ExecuteCommandAsync(CancellationToken cancellationToken) { this.Context.Ado.CancellationToken=cancellationToken; diff --git a/Src/Asp.Net/SqlSugar/Interface/IStorageable.cs b/Src/Asp.Net/SqlSugar/Interface/IStorageable.cs index 63ac2af6d..4fad26149 100644 --- a/Src/Asp.Net/SqlSugar/Interface/IStorageable.cs +++ b/Src/Asp.Net/SqlSugar/Interface/IStorageable.cs @@ -29,6 +29,8 @@ namespace SqlSugar Task> ToStorageAsync(); IStorageable As(string tableName); int ExecuteCommand(); + T ExecuteReturnEntity(); + Task ExecuteReturnEntityAsync(); Task ExecuteCommandAsync(); Task ExecuteCommandAsync(CancellationToken cancellationToken); int ExecuteSqlBulkCopy();