Как использовать строку подключения с EntityFrameworkCore 3 в функции Azure - PullRequest
0 голосов
/ 17 июня 2020

Итак, я использую следующий код для настройки моего DbContext в методе Configure FunctionsStartup:

        var config = new ConfigurationBuilder()
            .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
            .AddEnvironmentVariables()
            .Build();

        builder.Services.AddOptions();
        builder.Services.AddSingleton(config);

        builder.Services.Configure<MessageResenderOptions>(config);
        builder.Services.PostConfigure<MessageResenderOptions>(opt =>
            opt.ServiceBusConnectionString = config["ServiceBusConnectionString"]);

        builder.Services.AddDbContext<BackOfficeFacadeDatabaseContext>(options =>
            options.UseSqlServer(config.GetConnectionString("DatabaseConnectionString")));
        builder.Services.AddScoped<IRepository, Repository.Repository>();

«DatabaseConnectionString» предоставляется в Azure Deployment и отображается в Azure Раздел конфигурации портала функции.

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

Я думаю, что это связано с проблемой синхронизации. В приведенном выше коде вы можете видеть, что ServiceBusConnectionString предоставляется в методе Services.PostConfigure, что не относится к DbContext. Итак, я решил, что мне нужно как-то внедрить DbContext способом «PostConfigure», но мне это не удалось.

Очень надеюсь, что кто-то может мне помочь.

1 Ответ

0 голосов
/ 17 июня 2020

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

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