From fccca944f6a7bbdb57bbd6bacac63eeffccf74a1 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Tue, 13 May 2025 14:51:59 +0800 Subject: [PATCH] Synchronous code --- .../InsertableProvider/InsertableProvider.cs | 1 + .../Abstract/InsertableProvider/SplitInsertable.cs | 5 ++++- .../Abstract/QueryableProvider/QueryMethodInfo.cs | 5 +++++ .../SaveableProvider/StorageableMethodInfo.cs | 13 +++++++++++++ .../Abstract/UpdateProvider/UpdateableProvider.cs | 8 ++++---- 5 files changed, 27 insertions(+), 5 deletions(-) diff --git a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs index 59681cb98..7154e8959 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/InsertableProvider.cs @@ -761,6 +761,7 @@ namespace SqlSugar result.Helper = helper; result.SplitType = splitType; result.TableNames = new List>(); + result.MySqlIgnore = this.InsertBuilder.MySqlIgnore; foreach (var item in this.InsertObjs) { var splitFieldValue = helper.GetValue(splitType, item); diff --git a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/SplitInsertable.cs b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/SplitInsertable.cs index 16a0b1a3e..969aad0cc 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/SplitInsertable.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/InsertableProvider/SplitInsertable.cs @@ -15,6 +15,7 @@ namespace SqlSugar public SplitType SplitType; internal IInsertable Inserable { get; set; } internal List> TableNames { get; set; } + internal bool MySqlIgnore { get; set; } public int ExecuteCommand() { @@ -139,6 +140,7 @@ namespace SqlSugar groupInserable.IsEnableDiffLogEvent = parent.IsEnableDiffLogEvent; groupInserable.InsertBuilder.IsNoInsertNull = parent.InsertBuilder.IsNoInsertNull; groupInserable.IsOffIdentity = parent.IsOffIdentity; + groupInserable.InsertBuilder.MySqlIgnore = this.MySqlIgnore; result += groupInserable.AS(item.Key).InsertColumns(names.ToArray()).ExecuteCommand(); } return result; @@ -162,7 +164,8 @@ namespace SqlSugar groupInserable.diffModel = parent.diffModel; groupInserable.IsEnableDiffLogEvent = parent.IsEnableDiffLogEvent; groupInserable.InsertBuilder.IsNoInsertNull = parent.InsertBuilder.IsNoInsertNull; - groupInserable.IsOffIdentity = parent.IsOffIdentity; + groupInserable.IsOffIdentity = parent.IsOffIdentity; + groupInserable.InsertBuilder.MySqlIgnore = this.MySqlIgnore; result +=await groupInserable.AS(item.Key).InsertColumns(names.ToArray()).ExecuteCommandAsync(); } return result; diff --git a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryMethodInfo.cs b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryMethodInfo.cs index a36a08c4f..ec0b0294f 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryMethodInfo.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/QueryableProvider/QueryMethodInfo.cs @@ -249,6 +249,11 @@ namespace SqlSugar #region Result + public void IntoTable(Type type, string tableName) + { + var method = QueryableObj.GetType().GetMyMethod("IntoTable", 2, typeof(Type), typeof(string)); + var reslt = method.Invoke(QueryableObj, new object[] { type, tableName }); + } public object ToPageList(int pageNumber, int pageSize) { var method = QueryableObj.GetType().GetMyMethod("ToPageList", 2, typeof(int), typeof(int)); diff --git a/Src/Asp.Net/SqlSugar/Abstract/SaveableProvider/StorageableMethodInfo.cs b/Src/Asp.Net/SqlSugar/Abstract/SaveableProvider/StorageableMethodInfo.cs index 559718d05..b45c971d2 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/SaveableProvider/StorageableMethodInfo.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/SaveableProvider/StorageableMethodInfo.cs @@ -89,6 +89,19 @@ namespace SqlSugar result.Method = method; return result; } + + public StorageableSplitTableMethodInfo WhereColumns(string[] strings) + { + object objectValue = null; + MethodInfo method = GetSaveMethod(ref objectValue); + if (method == null) return new StorageableSplitTableMethodInfo(null); + method = objectValue.GetType().GetMyMethod("WhereColumns", 1, typeof(string[])); + objectValue = method.Invoke(objectValue, new object[] { strings }); + StorageableSplitTableMethodInfo result = new StorageableSplitTableMethodInfo(null); + result.ObjectValue = objectValue; + result.Method = method; + return result; + } } public class StorageableAsMethodInfo diff --git a/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs b/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs index 1f4118184..e4e1b167a 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/UpdateProvider/UpdateableProvider.cs @@ -677,7 +677,7 @@ namespace SqlSugar } return this; } - public IUpdateable SetColumns(string fieldName, object fieldValue) + public virtual IUpdateable SetColumns(string fieldName, object fieldValue) { ThrowUpdateByObject(); var columnInfo = this.EntityInfo.Columns.FirstOrDefault(it => it.PropertyName.EqualCase(fieldName)); @@ -726,7 +726,7 @@ namespace SqlSugar return this; } } - public IUpdateable SetColumns(Expression> filedNameExpression, Expression> valueExpression) + public virtual IUpdateable SetColumns(Expression> filedNameExpression, Expression> valueExpression) { if (valueExpression == null) { @@ -752,13 +752,13 @@ namespace SqlSugar } return this; } - public IUpdateable SetColumns(Expression> filedNameExpression, object fieldValue) + public virtual IUpdateable SetColumns(Expression> filedNameExpression, object fieldValue) { var name= UpdateBuilder.GetExpressionValue(filedNameExpression,ResolveExpressType.FieldSingle).GetString(); name = UpdateBuilder.Builder.GetNoTranslationColumnName(name); return SetColumns(name, fieldValue); } - public IUpdateable SetColumns(Expression> columns) + public virtual IUpdateable SetColumns(Expression> columns) { ThrowUpdateByObject(); var expResult = UpdateBuilder.GetExpressionValue(columns, ResolveExpressType.Update);