- 调整 增加支持 OneToOne 级联保存,EnableAddOrUpdateNavigateList 改名为 EnableAddOrUpdateNavigate;

This commit is contained in:
2881099
2022-05-04 15:49:05 +08:00
parent c9fa4d8983
commit b0ac5a8739
38 changed files with 190 additions and 198 deletions

View File

@ -89,16 +89,18 @@
刷新队列中的命令
</summary>
</member>
<member name="P:FreeSql.DbContextOptions.EnableAddOrUpdateNavigateList">
<member name="P:FreeSql.DbContextOptions.EnableAddOrUpdateNavigate">
<summary>
是否开启一对多,多对多级联保存功能<para></para>
是否开启 一对一(OneToOne)、一对多(OneToMany)、多对多(ManyToMany) 级联保存功能<para></para>
<para></para>
【一对】模型下, 保存时级联保存实体的属性集合。出于使用安全考虑我们没做完整对比,只实现实体属性集合的添加或更新操作,所以不会删除实体属性集合的数据。<para></para>
【一对】模型下,保存时级联保存 OneToOne 属性。
<para></para>
【一对多】模型下,保存时级联保存 OneToMany 集合属性。出于安全考虑我们没做完整对比,只针对实体属性集合的添加或更新操作,因此不会删除数据库表已有的数据。<para></para>
完整对比的功能使用起来太危险,试想下面的场景:<para></para>
- 保存的时候,实体的属性集合是空的,如何操作?记录全部删除?<para></para>
- 保存的时候,由于数据库中记录非常之多,那么只想保存子表的部分数据,或者只需要添加,如何操作?<para></para>
- 保存的时候,实体的属性集合为空时(!=null),表记录全部删除?<para></para>
- 保存的时候,由于数据库子表的记录很多,只想保存子表的部分数据,或者只需要添加,如何操作?
<para></para>
【多对多】模型下,我们对中间表的保存是完整对比操作,对外部实体的操作只作新增(*注意不会更新)<para></para>
【多对多】模型下,对中间表的保存是完整对比操作,对外部实体的只作新增操作*注意不会更新)<para></para>
- 属性集合为空时(!=null),删除他们的所有关联数据(中间表)<para></para>
- 属性集合不为空时,与数据库存在的关联数据(中间表)完全对比,计算出应该删除和添加的记录
</summary>
@ -230,7 +232,7 @@
</member>
<member name="M:FreeSql.Extensions.EfCoreFluentApi.EfCoreTableFluent.HasData(System.Collections.Generic.IEnumerable{System.Object})">
<summary>
使用 Repository + EnableAddOrUpdateNavigateList + NoneParameter 方式插入种子数据
使用 Repository + EnableAddOrUpdateNavigate + NoneParameter 方式插入种子数据
</summary>
<param name="data"></param>
<returns></returns>
@ -243,7 +245,7 @@
</member>
<member name="M:FreeSql.Extensions.EfCoreFluentApi.EfCoreTableFluent`1.HasData(System.Collections.Generic.IEnumerable{`0})">
<summary>
使用 Repository + EnableAddOrUpdateNavigateList + NoneParameter 方式插入种子数据
使用 Repository + EnableAddOrUpdateNavigate + NoneParameter 方式插入种子数据
</summary>
<param name="data"></param>
<returns></returns>