mirror of
https://github.com/dotnetcore/FreeSql.git
synced 2026-02-11 19:01:00 +08:00
update
10
联级保存.md
10
联级保存.md
@@ -26,13 +26,15 @@ var repo = fsql.GetRepository<T>();
|
|||||||
repo.DbContextOptions.EnableAddOrUpdateNavigateList = false;
|
repo.DbContextOptions.EnableAddOrUpdateNavigateList = false;
|
||||||
```
|
```
|
||||||
|
|
||||||
# SaveManyToMany
|
# SaveMany
|
||||||
|
|
||||||
保存实体的指定【多对多】导航属性,SaveManyToMany 方法实现在 BaseRepository、DbContext。
|
保存实体的指定【一对多】、【多对多】导航属性,SaveMany 方法实现在 BaseRepository、DbContext。
|
||||||
|
|
||||||
解决问题:当实体类导航数据过于复杂的时候,选择关闭联级保存的功能是明智之选,但是此时【多对多】数据保存功能写起来非常繁琐麻烦(与现有数据对比后保存)。
|
解决问题:当实体类导航数据过于复杂的时候,选择关闭联级保存的功能是明智之选,但是此时【一对多】、【多对多】数据保存功能写起来非常繁琐麻烦(与现有数据对比后保存)。
|
||||||
|
|
||||||
机制规则与联级保存的【多对多】一样。
|
SaveMany【一对多】的机制是完整对比保存。
|
||||||
|
|
||||||
|
SaveMany【多对多】的机制规则与联级保存的一样。
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|||||||
12
骚操作.md
12
骚操作.md
@@ -185,7 +185,7 @@ DELETE FROM `T1` WHERE id in (select a.id from T1 a left join Options b on b.t1i
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# 10、保存多对多数据 SaveManyToMany
|
# 10、保存多对多数据 SaveMany
|
||||||
|
|
||||||
之前:
|
之前:
|
||||||
|
|
||||||
@@ -205,9 +205,9 @@ repo.DbContextOptions.EnableAddOrUpdateNavigateList = false;
|
|||||||
|
|
||||||
### 本功能:
|
### 本功能:
|
||||||
|
|
||||||
保存实体的指定【多对多】导航属性,SaveManyToMany 方法实现在 BaseRepository、DbContext。
|
保存实体的指定【一对多】、【多对多】导航属性,SaveMany 方法实现在 BaseRepository、DbContext。
|
||||||
|
|
||||||
解决问题:当实体类导航数据过于复杂的时候,选择关闭联级保存的功能是明智之选,但是此时【多对多】数据保存功能写起来非常繁琐麻烦(因为要与现有数据对比后保存)。
|
解决问题:当实体类导航数据过于复杂的时候,选择关闭联级保存的功能是明智之选,但是此时【一对多】、【多对多】数据保存功能写起来非常繁琐麻烦(与现有数据对比后保存)。
|
||||||
|
|
||||||
```csharp
|
```csharp
|
||||||
var song = new Song { Id = 1 };
|
var song = new Song { Id = 1 };
|
||||||
@@ -215,11 +215,13 @@ song.Tags = new List<Tag>();
|
|||||||
song.Tags.Add(new Tag ...);
|
song.Tags.Add(new Tag ...);
|
||||||
song.Tags.Add(new Tag ...);
|
song.Tags.Add(new Tag ...);
|
||||||
song.Tags.Add(new Tag ...);
|
song.Tags.Add(new Tag ...);
|
||||||
repo.SaveManyToMany(song, "Tags");
|
repo.SaveMany(song, "Tags");
|
||||||
//轻松保存 song 与 tag 表的关联
|
//轻松保存 song 与 tag 表的关联
|
||||||
```
|
```
|
||||||
|
|
||||||
机制规则与联级保存的【多对多】一样,如下:
|
SaveMany【一对多】的机制是完整对比保存。
|
||||||
|
|
||||||
|
SaveMany【多对多】的机制规则与联级保存的一样,如下:
|
||||||
|
|
||||||
我们对中间表的保存是完整对比操作,对外部实体的操作只作新增(注意不会更新)
|
我们对中间表的保存是完整对比操作,对外部实体的操作只作新增(注意不会更新)
|
||||||
- 属性集合为空时,删除他们的所有关联数据(中间表)
|
- 属性集合为空时,删除他们的所有关联数据(中间表)
|
||||||
|
|||||||
Reference in New Issue
Block a user