diff --git a/Greed-Loading.md b/Greed-Loading.md index cf4d0a3..fc0f32b 100644 --- a/Greed-Loading.md +++ b/Greed-Loading.md @@ -77,17 +77,26 @@ new List(new[] { song1, song2, song3 }) //v3.2.605+ ``` -## Sub queryable ToList +## Subtable: ToList > v3.2.650+ ```csharp -fsql.Select().ToList(a => new +fsql.Select().ToList(a => new { all = a, - list1 = fsql.Select().ToList(), - list2 = fsql.Select().Where(b => b.SongId == a.Id).ToList() + list1 = fsql.Select().ToList(), + list2 = fsql.Select().Where(b => b.TopicId == a.Id).ToList() }); + +fsql.Select() + .GroupBy(a => new { a.Author }) + .WithTempQuery(a => new { Author = a.Key.Author, Count = a.Count() }) + .ToList(a => new { + a.Author, a.Count, + list1 = fsql.Select().ToList(), + list2 = fsql.Select().Where(b => b.Author == a.Author).ToList() + }); ``` ## Comparison of the Two Ways of IncludeMany diff --git a/贪婪加载.md b/贪婪加载.md index a9449e2..8aafb5e 100644 --- a/贪婪加载.md +++ b/贪婪加载.md @@ -76,17 +76,26 @@ new List(new[] { song1, song2, song3 }) //v3.2.605+ ``` -## 5、子查询 ToList - -> v3.2.650+ 以下最多执行3次 SQL +## 5、子表ToList ```csharp -fsql.Select().ToList(a => new +//最多执行3次 SQL +fsql.Select().ToList(a => new { all = a, - list1 = fsql.Select().ToList(), - list2 = fsql.Select().Where(b => b.SongId == a.Id).ToList() + list1 = fsql.Select().ToList(), + list2 = fsql.Select().Where(b => b.TopicId == a.Id).ToList() }); + +//分组之后,最多执行3次 SQL +fsql.Select() + .GroupBy(a => new { a.Author }) + .WithTempQuery(a => new { Author = a.Key.Author, Count = a.Count() }) + .ToList(a => new { + a.Author, a.Count, + list1 = fsql.Select().ToList(), + list2 = fsql.Select().Where(b => b.Author == a.Author).ToList() + }); ``` ## 6、IncludeMany 两种方式对比