Как уменьшить количество запросов к макету .NET Core - PullRequest
0 голосов
/ 22 сентября 2019

Я создал класс для получения настроек сайта.В этой таблице настроек я храню номер телефона, адрес электронной почты, адрес и т. Д. Пользователь с правами администратора может изменять свои настройки.

public interface IAppGlobalVariableService
{
    Task<List<Configuration>> GetAllConfig();
    Task<string> GetValue(string name);
}

public class AppGlobalVariablesService : IAppGlobalVariableService
{
    private readonly IRepository<Configuration> _configRepository;
    private static Task<List<Configuration>> _configList;

    public AppGlobalVariablesService(IRepository<Configuration> configRepository)
    {
        _configRepository = configRepository;
        _configList = GetAllConfig();
    }

    public async Task<List<Configuration>> GetAllConfig()
    {
        return await _configRepository.GetAll().ToListAsync();
    }

    public Task<string> GetValue(string name)
    {
        return GetConfigByName(name);
    }

    private static async Task<string> GetConfigByName(string name)
    {
        var configList = await _configList;
        return configList.FirstOrDefault(x => x.ConfigName == name)?.ConfigValue;
    }
}

В макете я называю свои настройки как стиль просмотра компонентов.

@await AppConfig.GetValue("Facebook")

Я ввел _ViewImports

@inject IAppGlobalVariableService AppConfig

Я буду использовать этот код в большинстве случаев.Есть ли у вас идеи уменьшить количество запросов для dotnet core 2.2?Могу ли я сделать что-то вроде запроса к базе данных один раз, чтобы получить переменные.А хранить кеш?

ОБНОВЛЕНИЕ: Я обновил свой файл startup.cs (AddTransient to AddScoped) Он перенаправил запросы.Но я хочу узнать, могу ли я использовать один запрос?

services.AddScoped<IAppGlobalVariableService, AppGlobalVariablesService>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...