1

Тема: Оптимізувати код asp.net mvc

як оптимізувати цей код
головна проблема тут полягає в тому, що тут видаєте кілька запитів у вкладених циклах

[HttpGet]
public ActionResult ForumList(int? page)
{
    var forums = MapperBag.ForumMapper.Map(_serviceBag.ForumService.GetAll());
    foreach (var item in forums)
    {
        var topics = MapperBag.TopicMapper.Map(_serviceBag.TopicService.GetAllTopicsByForum(item.Id));
        item.TopicCount = topics.Count();
        int count = 0;
        foreach (var t in topics)
        {
            var posts = MapperBag.PostMapper.Map(_serviceBag.PostService.GetPostsOfTopic(t.Id));
            count += posts.Count();
        }
        item.PostCount = count;
    }
    var model = forums.ToPagedList(page ?? 1, 10);
    return View(model);
}

2 Востаннє редагувалося Droid 77 (17.03.2021 22:53:42)

Re: Оптимізувати код asp.net mvc

andr1997 написав:

як оптимізувати цей код

Увімкнути в параметрах компілятора оптимізацію, та вказати рівень оптимізації.
Чи мали на увазі щось інше?
P. S.
Тобто по рівням:
0 - рівень оптимізації, компілюємо всю ту маячню що написав кодер
1 - частково викидаємо з коду бредятину
2 - викидаємо всю маячню

3 Востаннє редагувалося truesupport (26.03.2021 03:14:08)

Re: Оптимізувати код asp.net mvc

Ну врятлі це вже вам потрібно але на всякий випадок.

По перше ваш код ідентичний такому

[HttpGet]
public ActionResult ForumList(int? page)
{
    var forums = MapperBag.ForumMapper.Map(_serviceBag.ForumService.GetAll());
    var model = forums.ToPagedList(page ?? 1, 10);
    return View(model);
}

Тобто ви там що робите в тому foreach циклі але таке враження що на клієнт це ніяк не передається.

Якщо мені вдалось вгадати що ви хочете то з точки зору SQL запит може виглядати так

https://www.mycompiler.io/view/13l2KY9

Подякували: leofun011