Synchronization code

This commit is contained in:
sunkaixuan 2022-09-21 20:04:59 +08:00
parent 2f814b140f
commit 7787828a4c

View File

@ -24,6 +24,10 @@ namespace SqlSugar
{ {
parentPkColumn = parentNavColumn; parentPkColumn = parentNavColumn;
} }
if (ParentIsPk(parentNavigateProperty))
{
parentPkColumn = this._ParentEntity.Columns.FirstOrDefault(it => it.IsPrimarykey);
}
var ids = new List<object>(); var ids = new List<object>();
foreach (var item in parentList) foreach (var item in parentList)
{ {
@ -48,7 +52,13 @@ namespace SqlSugar
_NavigateType = null; _NavigateType = null;
SetNewParent<TChild>(thisEntity, thisPkColumn); SetNewParent<TChild>(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<object> ids,string fkName) private void DeleteMany(EntityInfo thisEntity, List<object> ids,string fkName)
{ {
if (_Options == null||_Options.OneToManyDeleteAll==false) if (_Options == null||_Options.OneToManyDeleteAll==false)