- 增加 DbContext/Repository ManyToMany联级保存功能(之前已支持OneToMany);

This commit is contained in:
28810
2019-09-29 15:02:08 +08:00
parent 7514000490
commit 33cb3e2dae
11 changed files with 435 additions and 58 deletions

View File

@ -48,7 +48,16 @@
</member>
<member name="P:FreeSql.DbContextOptions.EnableAddOrUpdateNavigateList">
<summary>
是否开启一对多,联级保存功能
是否开启一对多,多对多联级保存功能<para></para>
<para></para>
【一对多】模型下, 保存时可联级保存实体的属性集合。出于使用安全考虑我们没做完整对比,只实现实体属性集合的添加或更新操作,所以不会删除实体属性集合的数据。<para></para>
完整对比的功能使用起来太危险,试想下面的场景:<para></para>
- 保存的时候,实体的属性集合是空的,如何操作?记录全部删除?<para></para>
- 保存的时候,由于数据库中记录非常之多,那么只想保存子表的部分数据,或者只需要添加,如何操作?<para></para>
<para></para>
【多对多】模型下,我们对中间表的保存是完整对比操作,对外部实体的操作只作新增(注意不会更新)
- 属性集合为空时,删除他们的所有关联数据(中间表)
- 属性集合不为空时,与数据库存在的关联数据(中间表)完全对比,计算出应该删除和添加的记录
</summary>
</member>
<member name="M:FreeSql.DbSet`1.AsType(System.Type)">
@ -158,6 +167,11 @@
<param name="entityType"></param>
<returns></returns>
</member>
<member name="P:FreeSql.IBaseRepository.DbContextOptions">
<summary>
设置 DbContext 选项
</summary>
</member>
<member name="M:FreeSql.IBasicRepository`1.FlushState">
<summary>
清空状态数据
@ -193,14 +207,14 @@
开启工作单元
</summary>
</member>
<member name="M:FreeSqlDbContextExtenssions.CreateDbContext(IFreeSql)">
<member name="M:FreeSqlDbContextExtensions.CreateDbContext(IFreeSql)">
<summary>
创建普通数据上下文档对象
</summary>
<param name="that"></param>
<returns></returns>
</member>
<member name="M:FreeSqlDbContextExtenssions.NoTracking``1(FreeSql.ISelect{``0})">
<member name="M:FreeSqlDbContextExtensions.NoTracking``1(FreeSql.ISelect{``0})">
<summary>
不跟踪查询的实体数据(在不需要更新其数据时使用),可提长查询性能
</summary>
@ -208,7 +222,7 @@
<param name="select"></param>
<returns></returns>
</member>
<member name="M:FreeSqlDbContextExtenssions.SetDbContextOptions(IFreeSql,System.Action{FreeSql.DbContextOptions})">
<member name="M:FreeSqlDbContextExtensions.SetDbContextOptions(IFreeSql,System.Action{FreeSql.DbContextOptions})">
<summary>
设置 DbContext 选项设置
</summary>