From 3dc82f0d089b64e62e69ecf701f0bc51c6509f8a Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Wed, 15 Mar 2023 15:57:07 +0800 Subject: [PATCH] Update db.Deleteable.WhereColumns --- .../DeleteProvider/DeleteableProvider.cs | 24 +++++++++++-------- .../SqlSugar/Interface/IDeleteable.cs | 1 + 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/DeleteProvider/DeleteableProvider.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/DeleteProvider/DeleteableProvider.cs index 328035da9..672f45207 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/DeleteProvider/DeleteableProvider.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/DeleteProvider/DeleteableProvider.cs @@ -85,7 +85,7 @@ namespace SqlSugar { return EnableDiffLogEvent(businessData); } - else + else { return this; } @@ -159,7 +159,7 @@ namespace SqlSugar var columnInfo = EntityInfo.Columns.Single(it => it.PropertyName == entityPropertyName); var entityValue = columnInfo.PropertyInfo.GetValue(deleteObj, null); var tempequals = DeleteBuilder.WhereInEqualTemplate; - if (this.Context.CurrentConnectionConfig.MoreSettings != null && this.Context.CurrentConnectionConfig.MoreSettings.DisableNvarchar == true) + if (this.Context.CurrentConnectionConfig.MoreSettings != null && this.Context.CurrentConnectionConfig.MoreSettings.DisableNvarchar == true) { tempequals = $"{SqlBuilder.SqlTranslationLeft}{{0}}{SqlBuilder.SqlTranslationRight}='{{1}}' "; } @@ -178,13 +178,13 @@ namespace SqlSugar { andString.AppendFormat("\"{0}\"={1} ", primaryField.ToLower(), new PostgreSQLExpressionContext().GetValue(entityValue)); } - else if (this.Context.CurrentConnectionConfig.DbType == DbType.SqlServer && entityValue != null && UtilMethods.GetUnderType(entityValue.GetType()) == UtilConstants.DateType) + else if (this.Context.CurrentConnectionConfig.DbType == DbType.SqlServer && entityValue != null && UtilMethods.GetUnderType(entityValue.GetType()) == UtilConstants.DateType) { - andString.AppendFormat("\"{0}\"={1} ", primaryField,$"'{entityValue.ObjToDate().ToString("yyyy-MM-dd HH:mm:ss.fff")}'"); + andString.AppendFormat("\"{0}\"={1} ", primaryField, $"'{entityValue.ObjToDate().ToString("yyyy-MM-dd HH:mm:ss.fff")}'"); } else { - if ((columnInfo.SqlParameterDbType.ObjToString()==System.Data.DbType.AnsiString.ObjToString()) ||!(entityValue is string)||this.Context.CurrentConnectionConfig?.MoreSettings?.DisableNvarchar==true) + if ((columnInfo.SqlParameterDbType.ObjToString() == System.Data.DbType.AnsiString.ObjToString()) || !(entityValue is string) || this.Context.CurrentConnectionConfig?.MoreSettings?.DisableNvarchar == true) { tempequals = tempequals.Replace("=N'", "='"); } @@ -206,7 +206,7 @@ namespace SqlSugar var whereString = expResult.GetResultString(); if (expression.ToString().Contains("Subqueryable()")) { whereString = whereString.Replace(this.SqlBuilder.GetTranslationColumnName(expression.Parameters.First().Name) + ".", this.SqlBuilder.GetTranslationTableName(this.EntityInfo.DbTableName) + "."); - } + } else if (expResult.IsNavicate) { whereString = whereString.Replace(expression.Parameters.First().Name + ".", this.SqlBuilder.GetTranslationTableName(this.EntityInfo.DbTableName) + "."); @@ -269,7 +269,7 @@ namespace SqlSugar } public IDeleteable Where(List conditionalModels) { - if (conditionalModels.Count == 0) + if (conditionalModels.Count == 0) { return Where("1=2"); } @@ -278,18 +278,22 @@ namespace SqlSugar result.Where(sql.Key, sql.Value); return result; } - + public IDeleteable WhereColumns(T data, Expression> columns) + { + return WhereColumns(new List() { data },columns); + } public IDeleteable WhereColumns(List list,Expression> columns) { if (this.GetPrimaryKeys().IsNullOrEmpty()) { tempPrimaryKeys = DeleteBuilder.GetExpressionValue(columns, ResolveExpressType.ArraySingle).GetResultArray().Select(it => this.SqlBuilder.GetNoTranslationColumnName(it)).ToList(); } - this.Where(list); - if (columns != null&& tempPrimaryKeys.IsNullOrEmpty()) + else if (columns != null && tempPrimaryKeys.IsNullOrEmpty()) { tempPrimaryKeys = DeleteBuilder.GetExpressionValue(columns, ResolveExpressType.ArraySingle).GetResultArray().Select(it => this.SqlBuilder.GetNoTranslationColumnName(it)).ToList(); } + this.Where(list); + return this; } public IDeleteable WhereColumns(List> list) diff --git a/Src/Asp.NetCore2/SqlSugar/Interface/IDeleteable.cs b/Src/Asp.NetCore2/SqlSugar/Interface/IDeleteable.cs index 54470a02a..6116deb1c 100644 --- a/Src/Asp.NetCore2/SqlSugar/Interface/IDeleteable.cs +++ b/Src/Asp.NetCore2/SqlSugar/Interface/IDeleteable.cs @@ -31,6 +31,7 @@ namespace SqlSugar IDeleteable Where(string whereString, SugarParameter parameter); IDeleteable Where(string whereString, SugarParameter[] parameters); IDeleteable Where(string whereString, List parameters); + IDeleteable WhereColumns(T data, Expression> columns); IDeleteable WhereColumns(List list,Expression> columns); IDeleteable WhereColumns(List> columns); IDeleteable Where(List conditionalModels);