From 5ec61e410a9714dfe5cc3646c01c450f16630a6f Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Wed, 21 Sep 2022 19:58:08 +0800 Subject: [PATCH] Update db.UpdateNav --- .../ExecuteNavProvider/UpdateNavOneToMany.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Src/Asp.Net/SqlSugar/Abstract/ExecuteNavProvider/UpdateNavOneToMany.cs b/Src/Asp.Net/SqlSugar/Abstract/ExecuteNavProvider/UpdateNavOneToMany.cs index 31e17355c..c072b3a0e 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/ExecuteNavProvider/UpdateNavOneToMany.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/ExecuteNavProvider/UpdateNavOneToMany.cs @@ -24,6 +24,10 @@ namespace SqlSugar { parentPkColumn = parentNavColumn; } + if (ParentIsPk(parentNavigateProperty)) + { + parentPkColumn = this._ParentEntity.Columns.FirstOrDefault(it => it.IsPrimarykey); + } var ids = new List(); foreach (var item in parentList) { @@ -48,7 +52,13 @@ namespace SqlSugar _NavigateType = null; SetNewParent(thisEntity, thisPkColumn); } - + private static bool ParentIsPk(EntityColumnInfo parentNavigateProperty) + { + return parentNavigateProperty != null && + parentNavigateProperty.Navigat != null && + parentNavigateProperty.Navigat.NavigatType == NavigateType.OneToMany && + parentNavigateProperty.Navigat.Name2 == null; + } private void DeleteMany(EntityInfo thisEntity, List ids,string fkName) { if (_Options == null||_Options.OneToManyDeleteAll==false)