Revize ecb333b6
Přidáno uživatelem Vojtěch Bartička před asi 3 roky(ů)
Backend/Core/Services/TagService/TagServiceEF.cs | ||
---|---|---|
25 | 25 |
|
26 | 26 |
public TagTreeResponse GetTagTree() |
27 | 27 |
{ |
28 |
// Prefetch from DB |
|
28 | 29 |
var tagCategories = databaseContext.TagCategories.Select(tc => tc).ToList(); |
30 |
var tags = databaseContext.Tags.Select(tc => tc).ToList(); |
|
31 |
var subTags = databaseContext.SubTags.Select(tc => tc).ToList(); |
|
32 |
|
|
29 | 33 |
var tagCategoriesDTOs = new List<TagCategoryInfo>(); |
30 | 34 |
foreach (var tagCategory in tagCategories) |
31 | 35 |
{ |
32 | 36 |
var tagCategoryDTO = mapper.Map<TagCategoryInfo>(tagCategory); |
33 |
var tags = databaseContext.Tags.Where(t => t.Category == tagCategory).ToList();
|
|
37 |
var categoryTags = tags.Where(t => t.Category == tagCategory);
|
|
34 | 38 |
var tagDTOs = new List<TagInfo>(); |
35 | 39 |
|
36 |
foreach (var tag in tags)
|
|
40 |
foreach (var tag in categoryTags)
|
|
37 | 41 |
{ |
38 | 42 |
var tagDTO = mapper.Map<TagInfo>(tag); |
39 |
var subTags = databaseContext.SubTags.Where(st => st.Tag == tag).ToList();
|
|
43 |
var tagSubTags = subTags.Where(st => st.Tag == tag).ToList();
|
|
40 | 44 |
var subTagDTOs = new List<SubTagInfo>(); |
41 | 45 |
|
42 |
if (subTags.Count() != 0)
|
|
46 |
if (tagSubTags.Count() != 0)
|
|
43 | 47 |
{ |
44 |
foreach (var subTag in subTags)
|
|
48 |
foreach (var subTag in tagSubTags)
|
|
45 | 49 |
{ |
46 | 50 |
subTagDTOs.Add(mapper.Map<SubTagInfo>(subTag)); |
47 | 51 |
} |
Také k dispozici: Unified diff
Optimized database access - prefetch tags and categories