Я следовал указаниям здесь , чтобы создать консольное приложение с поддержкой ядра ef. Он использует пользовательские секреты для хранения строк подключения и работает правильно. Тем не менее, при попытке запустить
class Program
{
static async Task Main(string[] args)
{
await CreateHostBuilder(args).RunConsoleAsync();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseEnvironment("Development")
.ConfigureServices(ConfigureServices);
private static void ConfigureServices(HostBuilderContext hostBuilderContext, IServiceCollection services)
{
var connectionStrings = hostBuilderContext.Configuration
.GetSection("ConnectionStrings")
.Get<ConnectionStrings>();
services.AddSingleton(new Config
{
ConnectionStrings = connectionStrings
});
services.AddDbContext<TargetDbContext>(options =>
options.UseNpgsql(connectionStrings.TargetDb));
}
}
public class Config
{
public ConnectionStrings ConnectionStrings { get; set; }
}
public class ConnectionStrings
{
public string AdminDb { get; set; }
public string TenantTemplate { get; set; }
public string TargetDb { get; set; }
}
dotnet ef migrations add create_target_databse --context TargetDbContext
Не удается найти секреты пользователя и объект строки подключения имеет значение null. Что не так и как я могу это решить?
PS: У меня не было проблем с asp. net базовым шаблоном проекта. Я сталкиваюсь с этой проблемой только в консоли.