Загрузка настроек всего приложения во время запуска приложения с серверной БД SQL с использованием Entity Framework Core в ASP. NET Core - PullRequest
0 голосов
/ 07 января 2020

Как мне go получить некоторые данные только один раз (за весь период существования приложения до его выключения или перезапуска) из базы данных SQL Server с использованием Entity Framework Core DbContext во время ASP. NET Запуск ядра (в моем классе Startup.cs) моего приложения? И есть ли эти данные для использования в моих различных контроллерах?

У меня есть некоторые настройки для приложения в таблице базы данных, которые я хочу загрузить в память один раз и использовать их в течение всего жизненного цикла приложения, не обращаясь к базе данных снова.

1 Ответ

0 голосов
/ 07 января 2020

Обычно вы хотите использовать метод, который загружает результаты в свойство c. Например, как список. Таким образом, класс stati c, как этот, сделает свое дело.

public static class Settings
{
  public static Dictionary<string,string> Settings {get; set;}
}

Код должен быть помещен в конце Configure. Есть 2 способа сделать это.

Более простой способ

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        // your other code

        var yourService = new YourService();
        Settings.Data = yourService.GetData();
    }

Способ выброса зависимостей

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IYourservice yourService)
    {
        // your other code

        Settings.Data = yourService.GetData();
    }

Предупреждение, указанный выше метод будет работать только если вы используете инъекцию зависимости. Обычно вы хотите вызывать эти методы, когда приложение завершит настройку. Хорошая идея разбить код на разные файлы и / или методы.

...