From ab52728f7fde4c30803ec12d9d4b11cbadbd725f Mon Sep 17 00:00:00 2001
From: 28810 <28810@YEXIANGQIN>
Date: Fri, 6 Mar 2020 13:13:47 +0800
Subject: [PATCH] =?UTF-8?q?-=20=E5=A2=9E=E5=8A=A0=20BaseEntity=20SaveMany?=
=?UTF-8?q?=20=E6=96=B9=E6=B3=95=EF=BC=9B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../BaseEntity.cs | 13 +++++
.../BaseEntityAsync.cs | 13 +++++
.../Net40/BaseEntity.cs | 12 +++++
FreeSql.DbContext/DbSet/DbSetAsync.cs | 11 ++--
FreeSql.DbContext/DbSet/DbSetSync.cs | 11 ++--
FreeSql.DbContext/FreeSql.DbContext.xml | 7 +++
.../RepositoryTests.cs | 53 ++++++++++++++++++-
7 files changed, 113 insertions(+), 7 deletions(-)
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