Update nav

This commit is contained in:
sunkaixuan 2023-10-29 22:58:44 +08:00
parent 34b23e423f
commit 629a9c8166
2 changed files with 12 additions and 5 deletions

View File

@ -10,6 +10,11 @@ namespace SqlSugar
{ {
public NavigateType? _NavigateType { get; set; } public NavigateType? _NavigateType { get; set; }
private void UpdateOneToMany<TChild>(string name, EntityColumnInfo nav) where TChild : class, new() private void UpdateOneToMany<TChild>(string name, EntityColumnInfo nav) where TChild : class, new()
{
DeleteInsert<TChild>(name, nav);
}
private void DeleteInsert<TChild>(string name, EntityColumnInfo nav) where TChild : class, new()
{ {
List<TChild> children = new List<TChild>(); List<TChild> children = new List<TChild>();
var parentEntity = _ParentEntity; var parentEntity = _ParentEntity;
@ -42,7 +47,7 @@ namespace SqlSugar
children.AddRange(childs); children.AddRange(childs);
} }
ids.Add(parentValue); ids.Add(parentValue);
if (_Options?.OneToManyNoDeleteNull == true && childs == null) if (_Options?.OneToManyNoDeleteNull == true && childs == null)
{ {
ids.Remove(parentValue); ids.Remove(parentValue);
} }
@ -54,9 +59,9 @@ namespace SqlSugar
{ {
var locgicColumn = thisEntity.Columns.FirstOrDefault(it => it.PropertyName.EqualCase("IsDeleted") || it.PropertyName.EqualCase("IsDelete")); var locgicColumn = thisEntity.Columns.FirstOrDefault(it => it.PropertyName.EqualCase("IsDeleted") || it.PropertyName.EqualCase("IsDelete"));
Check.ExceptionEasy( Check.ExceptionEasy(
locgicColumn==null, locgicColumn == null,
thisEntity.EntityName + "Logical deletion requires the entity to have the IsDeleted property", thisEntity.EntityName + "Logical deletion requires the entity to have the IsDeleted property",
thisEntity.EntityName+"假删除需要实体有IsDeleted属性"); thisEntity.EntityName + "假删除需要实体有IsDeleted属性");
List<IConditionalModel> conditionalModels = new List<IConditionalModel>(); List<IConditionalModel> conditionalModels = new List<IConditionalModel>();
conditionalModels.Add(new ConditionalModel() conditionalModels.Add(new ConditionalModel()
{ {
@ -81,13 +86,14 @@ namespace SqlSugar
_NavigateType = NavigateType.OneToMany; _NavigateType = NavigateType.OneToMany;
InsertDatas(children, thisPkColumn); InsertDatas(children, thisPkColumn);
} }
else else
{ {
this._ParentList = children.Cast<object>().ToList(); this._ParentList = children.Cast<object>().ToList();
} }
_NavigateType = null; _NavigateType = null;
SetNewParent<TChild>(thisEntity, thisPkColumn); SetNewParent<TChild>(thisEntity, thisPkColumn);
} }
private static bool ParentIsPk(EntityColumnInfo parentNavigateProperty) private static bool ParentIsPk(EntityColumnInfo parentNavigateProperty)
{ {
return parentNavigateProperty != null && return parentNavigateProperty != null &&

View File

@ -51,6 +51,7 @@ namespace SqlSugar
public bool OneToManyDeleteAll { get; set; } public bool OneToManyDeleteAll { get; set; }
public bool OneToManyEnableLogicDelete { get; set; } public bool OneToManyEnableLogicDelete { get; set; }
public bool OneToManyNoDeleteNull { get; set; } public bool OneToManyNoDeleteNull { get; set; }
public bool OneToManyInsertOrUpdate { get; set; }
public Expression RootFunc { get; set; } public Expression RootFunc { get; set; }
public Expression CurrentFunc { get; set; } public Expression CurrentFunc { get; set; }
} }