From fc3ec5cd06283f4a1760b91621cc686468ba9e08 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Sat, 25 Mar 2023 16:14:27 +0800 Subject: [PATCH] Db.Storageable(list).DefaultAddElseUpdate().ExecuteCommand() --- .../Abstract/SaveableProvider/Storageable.cs | 14 ++++++++++++++ Src/Asp.Net/SqlSugar/Interface/IStorageable.cs | 1 + 2 files changed, 15 insertions(+) diff --git a/Src/Asp.Net/SqlSugar/Abstract/SaveableProvider/Storageable.cs b/Src/Asp.Net/SqlSugar/Abstract/SaveableProvider/Storageable.cs index 0fc32847b..1362f35b4 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/SaveableProvider/Storageable.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/SaveableProvider/Storageable.cs @@ -89,6 +89,20 @@ namespace SqlSugar return this; } + public IStorageable DefaultAddElseUpdate() + { + var column = this.Context.EntityMaintenance.GetEntityInfo().Columns.FirstOrDefault(it=>it.IsPrimarykey); + if (column == null) Check.ExceptionEasy("DefaultAddElseUpdate() need primary key", "DefaultAddElseUpdate()这个方法只能用于主键"); + var defaultValue = default(T); + return this.SplitUpdate(it => + { + var itemPkValue = column.PropertyInfo.GetValue(it.Item); + var result= itemPkValue != null && itemPkValue.ObjToString() != defaultValue.ObjToString(); + return result; + + }).SplitInsert(it => true); + } + public int ExecuteCommand() { var result = 0; diff --git a/Src/Asp.Net/SqlSugar/Interface/IStorageable.cs b/Src/Asp.Net/SqlSugar/Interface/IStorageable.cs index 58fccdb2b..82793b3b2 100644 --- a/Src/Asp.Net/SqlSugar/Interface/IStorageable.cs +++ b/Src/Asp.Net/SqlSugar/Interface/IStorageable.cs @@ -29,6 +29,7 @@ namespace SqlSugar Task ExecuteCommandAsync(); int ExecuteSqlBulkCopy(); Task ExecuteSqlBulkCopyAsync(); + IStorageable DefaultAddElseUpdate(); } public class StorageableInfo where T : class, new()