From 3ce6d17d9f9797e4c3817bf6e61a88e5ec618cf7 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Fri, 9 May 2025 15:40:07 +0800 Subject: [PATCH] Synchronous code --- .../SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs | 2 +- .../Abstract/InsertableProvider/InsertableHelper.cs | 6 +++++- .../SqlSugar/Abstract/UpdateProvider/UpdateableHelper.cs | 8 ++++---- .../Abstract/UpdateProvider/UpdateableProvider.cs | 4 ++-- Src/Asp.Net/SqlSugar/Infrastructure/StaticConfig.cs | 1 + 5 files changed, 13 insertions(+), 8 deletions(-) diff --git a/Src/Asp.Net/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs b/Src/Asp.Net/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs index cb9898af9..4239e0051 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs @@ -794,7 +794,7 @@ namespace SqlSugar var columns = entityInfo.Columns.Where(it => it.IsIgnore == false).ToList(); foreach (var item in columns) { - if (item.DefaultValue.HasValue()) + if (item.DefaultValue!=null) { if (!IsAnyDefaultValue(entityInfo.DbTableName,item.DbColumnName,dbColumns)) { diff --git a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableHelper.cs b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableHelper.cs index 0b5ee5403..a3ab983fc 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableHelper.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableHelper.cs @@ -42,12 +42,16 @@ namespace SqlSugar foreach (var item in InsertBuilder.DbColumnInfoList) { var isPk = pks.Any(y => y.Equals(item.DbColumnName, StringComparison.CurrentCultureIgnoreCase)) || item.IsPrimarykey; - if (isPk && item.PropertyType == UtilConstants.GuidType && item.Value.ObjToString() == Guid.Empty.ToString()) + if (isPk && item.PropertyType == UtilConstants.GuidType && item.Value is Guid guid && guid == Guid.Empty) { if (StaticConfig.CustomGuidFunc != null) { item.Value = StaticConfig.CustomGuidFunc(); } + else if (StaticConfig.CustomGuidByValueFunc != null&& item.Value is Guid guidValue) + { + item.Value = StaticConfig.CustomGuidByValueFunc(guidValue); + } else { item.Value = Guid.NewGuid(); diff --git a/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableHelper.cs b/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableHelper.cs index 9a48c26e7..02695abe5 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableHelper.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableHelper.cs @@ -881,20 +881,20 @@ namespace SqlSugar { return UtilMethods.CountSubstringOccurrences(sql,"WHERE")>1; } - private bool IsCorrectErrorSqlParameterName() + protected bool IsCorrectErrorSqlParameterName() { return this.Context?.CurrentConnectionConfig?.MoreSettings?.IsCorrectErrorSqlParameterName == true; } - private void ThrowUpdateByExpression() + protected void ThrowUpdateByExpression() { Check.Exception(UpdateParameterIsNull == true, ErrorMessage.GetThrowMessage(" no support UpdateColumns and WhereColumns", "根据表达式更新 db.Updateable() 禁止使用 UpdateColumns和WhereColumns,你可以使用 SetColumns Where 等。更新分为2种方式 1.根据表达式更新 2.根据实体或者集合更新, 具体用法请查看文档 ")); } - private void ThrowUpdateByObject() + protected void ThrowUpdateByObject() { Check.Exception(UpdateParameterIsNull == false, ErrorMessage.GetThrowMessage(" no support SetColumns and Where", "根据对像更新 db.Updateabe(对象) 禁止使用 SetColumns和Where ,你可以使用WhereColumns 和 UpdateColumns。 更新分为2种方式 1.根据表达式更新 2.根据实体或者集合更新 , 具体用法请查看文档 ")); } - private void ThrowUpdateByExpressionByMesage(string message) + protected void ThrowUpdateByExpressionByMesage(string message) { Check.Exception(UpdateParameterIsNull == true, ErrorMessage.GetThrowMessage(" no support "+ message, "根据表达式更新 db.Updateable()禁止使用 " + message+"。 更新分为2种方式 1.根据表达式更新 2.根据实体或者集合更新 , 具体用法请查看文档 ")); } diff --git a/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs index 874a22701..1f4118184 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs @@ -784,7 +784,7 @@ namespace SqlSugar } - public IUpdateable SetColumns(Expression> columns, bool appendColumnsByDataFilter) + public virtual IUpdateable SetColumns(Expression> columns, bool appendColumnsByDataFilter) { ThrowUpdateByObject(); var expResult = UpdateBuilder.GetExpressionValue(columns, ResolveExpressType.Update); @@ -843,7 +843,7 @@ namespace SqlSugar AppendSets(); return this; } - public IUpdateable SetColumns(Expression> columns) + public virtual IUpdateable SetColumns(Expression> columns) { ThrowUpdateByObject(); diff --git a/Src/Asp.Net/SqlSugar/Infrastructure/StaticConfig.cs b/Src/Asp.Net/SqlSugar/Infrastructure/StaticConfig.cs index 2b942e918..7d664ab50 100644 --- a/Src/Asp.Net/SqlSugar/Infrastructure/StaticConfig.cs +++ b/Src/Asp.Net/SqlSugar/Infrastructure/StaticConfig.cs @@ -21,6 +21,7 @@ namespace SqlSugar public static Func CustomSnowFlakeFunc; public static Func CustomSnowFlakeTimeErrorFunc; public static Func CustomGuidFunc; + public static Func CustomGuidByValueFunc; public static Action CompleteQueryableFunc; public static Action CompleteInsertableFunc;