From 6405b8adb5e774036acc17a2f3dfab2f03a47047 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Wed, 21 Sep 2022 17:59:36 +0800 Subject: [PATCH] Update .net core project --- .../InsertNavProviderOneToMany.cs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/Src/Asp.NetCore2/SqlSugar/Abstract/ExecuteNavProvider/InsertNavProviderOneToMany.cs b/Src/Asp.NetCore2/SqlSugar/Abstract/ExecuteNavProvider/InsertNavProviderOneToMany.cs index 5b3d065e5..11d240cff 100644 --- a/Src/Asp.NetCore2/SqlSugar/Abstract/ExecuteNavProvider/InsertNavProviderOneToMany.cs +++ b/Src/Asp.NetCore2/SqlSugar/Abstract/ExecuteNavProvider/InsertNavProviderOneToMany.cs @@ -17,13 +17,17 @@ namespace SqlSugar var parentNavigateProperty = parentEntity.Columns.FirstOrDefault(it => it.PropertyName == name); var thisEntity = this._Context.EntityMaintenance.GetEntityInfo(); var thisPkColumn = GetPkColumnByNav(thisEntity, nav); - var thisFkColumn= GetFKColumnByNav(thisEntity, nav); + var thisFkColumn = GetFKColumnByNav(thisEntity, nav); EntityColumnInfo parentPkColumn = GetParentPkColumn(); EntityColumnInfo parentNavColumn = GetParentPkNavColumn(nav); - if (parentNavColumn != null) + if (parentNavColumn != null) { parentPkColumn = parentNavColumn; } + if (ParentIsPk(parentNavigateProperty)) + { + parentPkColumn = this._ParentEntity.Columns.FirstOrDefault(it => it.IsPrimarykey); + } foreach (var item in parentList) { var parentValue = parentPkColumn.PropertyInfo.GetValue(item); @@ -39,7 +43,15 @@ namespace SqlSugar } Check.ExceptionEasy(thisPkColumn == null, $"{thisEntity.EntityName}need primary key", $"实体{thisEntity.EntityName}需要主键"); InsertDatas(children, thisPkColumn); - SetNewParent(thisEntity,thisPkColumn); + 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 EntityColumnInfo GetParentPkColumn()