diff --git a/Extensions/FreeSql.Extensions.BaseEntity/BaseEntity.cs b/Extensions/FreeSql.Extensions.BaseEntity/BaseEntity.cs
index a3fa6cbf..516fdbd9 100644
--- a/Extensions/FreeSql.Extensions.BaseEntity/BaseEntity.cs
+++ b/Extensions/FreeSql.Extensions.BaseEntity/BaseEntity.cs
@@ -143,6 +143,19 @@ namespace FreeSql
this.Repository.UnitOfWork = UnitOfWork.Current.Value;
return this.Repository.InsertOrUpdate(this as TEntity);
}
+
+ ///
+ /// 【完整】保存导航属性,子表
+ ///
+ /// 导航属性名
+ public virtual void SaveMany(string navigatePropertyName)
+ {
+ if (this.Repository == null)
+ this.Repository = Orm.GetRepository();
+
+ this.Repository.UnitOfWork = UnitOfWork.Current.Value;
+ this.Repository.SaveMany(this as TEntity, navigatePropertyName);
+ }
}
}
diff --git a/Extensions/FreeSql.Extensions.BaseEntity/BaseEntityAsync.cs b/Extensions/FreeSql.Extensions.BaseEntity/BaseEntityAsync.cs
index e9b33458..0d412cdb 100644
--- a/Extensions/FreeSql.Extensions.BaseEntity/BaseEntityAsync.cs
+++ b/Extensions/FreeSql.Extensions.BaseEntity/BaseEntityAsync.cs
@@ -125,6 +125,19 @@ namespace FreeSql
this.Repository.UnitOfWork = UnitOfWork.Current.Value;
return this.Repository.InsertOrUpdateAsync(this as TEntity);
}
+
+ ///
+ /// 【完整】保存导航属性,子表
+ ///
+ /// 导航属性名
+ public virtual Task SaveManyAsync(string navigatePropertyName)
+ {
+ if (this.Repository == null)
+ this.Repository = Orm.GetRepository();
+
+ this.Repository.UnitOfWork = UnitOfWork.Current.Value;
+ return this.Repository.SaveManyAsync(this as TEntity, navigatePropertyName);
+ }
}
}
diff --git a/Extensions/FreeSql.Extensions.BaseEntity/Net40/BaseEntity.cs b/Extensions/FreeSql.Extensions.BaseEntity/Net40/BaseEntity.cs
index 03bfa3a9..41742013 100644
--- a/Extensions/FreeSql.Extensions.BaseEntity/Net40/BaseEntity.cs
+++ b/Extensions/FreeSql.Extensions.BaseEntity/Net40/BaseEntity.cs
@@ -104,6 +104,18 @@ namespace FreeSql
return this.Repository.InsertOrUpdate(this as TEntity);
}
+
+ ///
+ /// 【完整】保存导航属性,子表
+ ///
+ /// 导航属性名
+ public virtual void SaveMany(string navigatePropertyName)
+ {
+ if (this.Repository == null)
+ this.Repository = Orm.GetRepository();
+
+ this.Repository.SaveMany(this as TEntity, navigatePropertyName);
+ }
}
}
diff --git a/FreeSql.DbContext/DbSet/DbSetAsync.cs b/FreeSql.DbContext/DbSet/DbSetAsync.cs
index cec6c1b2..1dfb5296 100644
--- a/FreeSql.DbContext/DbSet/DbSetAsync.cs
+++ b/FreeSql.DbContext/DbSet/DbSetAsync.cs
@@ -174,10 +174,15 @@ namespace FreeSql
else whereParentExp = Expression.AndAlso(whereParentExp, whereExp);
}
var propValEach = GetItemValue(item, prop) as IEnumerable;
- await _db.Orm.Delete