diff --git a/Src/Asp.Net/SqlSugar/Abstract/ExecuteNavProvider/UpdateNavOneToOne.cs b/Src/Asp.Net/SqlSugar/Abstract/ExecuteNavProvider/UpdateNavOneToOne.cs index 00edc927b..58e9aff47 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/ExecuteNavProvider/UpdateNavOneToOne.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/ExecuteNavProvider/UpdateNavOneToOne.cs @@ -8,6 +8,7 @@ namespace SqlSugar { public partial class UpdateNavProvider where T : class, new() where Root : class, new() { + protected bool IsDeleted { get; set; } private void UpdateOneToOne(string name, EntityColumnInfo nav) where TChild : class, new() { var parentEntity = _ParentEntity; @@ -16,6 +17,7 @@ namespace SqlSugar var parentColumn = parentEntity.Columns.FirstOrDefault(it => it.PropertyName == nav.Navigat.Name); var parentPkColumn = parentEntity.Columns.FirstOrDefault(it => it.IsPrimarykey); var thisEntity = this._Context.EntityMaintenance.GetEntityInfo(); + IsDeleted = thisEntity.Columns.Any(it => it.PropertyName.EqualCase("isdeleted") || it.PropertyName.EqualCase("isdelete")); EntityColumnInfo thisPkColumn = GetPkColumnByNav(thisEntity, nav); Check.ExceptionEasy(thisPkColumn == null, $" Navigate {parentEntity.EntityName} : {name} is error ", $"导航实体 {parentEntity.EntityName} 属性 {name} 配置错误"); Check.ExceptionEasy(nav.Navigat.WhereSql.HasValue(), $" {name} Navigate(NavType,WhereSql) no support update ", $"导航一对一 {name} 配置了 Sql变量 不支持更新"); diff --git a/Src/Asp.Net/SqlSugar/Abstract/ExecuteNavProvider/UpdateNavProviderHelper.cs b/Src/Asp.Net/SqlSugar/Abstract/ExecuteNavProvider/UpdateNavProviderHelper.cs index 377ce51bb..431c56251 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/ExecuteNavProvider/UpdateNavProviderHelper.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/ExecuteNavProvider/UpdateNavProviderHelper.cs @@ -84,7 +84,14 @@ namespace SqlSugar Check.ExceptionEasy(exp == null, "UpdateOptions.CurrentFunc is error", "UpdateOptions.CurrentFunc参数设置错误"); var com = exp.Compile(); com(updateable); - updateable.ExecuteCommand(); + if (IsDeleted) + { + updateable.PageSize(1).EnableQueryFilter().ExecuteCommand(); + } + else + { + updateable.ExecuteCommand(); + } } else if (pkColumn.IsPrimarykey == false) { @@ -94,11 +101,25 @@ namespace SqlSugar { ignoreColumns.AddRange(pk.Select(it=>it.PropertyName)); } - x.AsUpdateable.IgnoreColumns(ignoreColumns.ToArray()).ExecuteCommand(); + if (IsDeleted) + { + x.AsUpdateable.IgnoreColumns(ignoreColumns.ToArray()).PageSize(1).EnableQueryFilter().ExecuteCommand(); + } + else + { + x.AsUpdateable.IgnoreColumns(ignoreColumns.ToArray()).ExecuteCommand(); + } } else { - x.AsUpdateable.ExecuteCommand(); + if (IsDeleted) + { + x.AsUpdateable.PageSize(1).EnableQueryFilter().ExecuteCommand(); + } + else + { + x.AsUpdateable.ExecuteCommand(); + } } InitData(pkColumn, insertData); if (_NavigateType == NavigateType.OneToMany)