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()