mirror of
https://gitee.com/dotnetchina/SqlSugar.git
synced 2025-05-03 04:13:48 +08:00
Db.UpdateNav & OneToOne & QueryQueryFilter
This commit is contained in:
parent
c6f329c283
commit
d83991058f
@ -8,6 +8,7 @@ namespace SqlSugar
|
||||
{
|
||||
public partial class UpdateNavProvider<Root, T> where T : class, new() where Root : class, new()
|
||||
{
|
||||
protected bool IsDeleted { get; set; }
|
||||
private void UpdateOneToOne<TChild>(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<TChild>();
|
||||
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变量 不支持更新");
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user