Я думаю, вы можете запутать сценарии one session per request
и SELECT N + 1
. Совершенно нормально иметь несколько обращений к базе данных, однако вы должны остерегаться, когда вам нужно выполнить один вызов базы данных для каждого элемента в списке. Это чаще всего встречается при использовании ленивых загруженных списков. Решение состоит в том, чтобы использовать нетерпеливое извлечение.
пс. Я думаю, что популярным решением для получения данных на главной странице является использование Html.RenderAction
на главной странице. Таким образом, вам не нужно беспокоиться о проблемах с главной страницей (например, о навигации) повсюду.