我试图用用appsetting.json编写的连接字符串连接到数据库。我试着把它传递给UseSqlServer(“.”)在AddDbContext中,但是它不起作用。当我在上下文类中编写它时,它可以工作。因此,程序运行时没有错误,但它没有连接到Db。
有人知道这里出了什么问题吗?下面是Program.cs代码:
using IHost host = Host.CreateDefaultBuilder(args)
.UseWindowsService(options =>
{
options.ServiceName = "Subscriber Service";
})
.ConfigureServices(services =>
{
services.AddHostedService<DeliveryService>()
.AddSingleton<IQueueService, QueueService>()
.AddSingleton<IMailTransport, MailTransport>()
.AddSingleton<IHttpTransport, HttpTransport>()
.AddDbContext<nbiot_core_svctestContext>(
options => options.UseSqlServer("name=ConnectionStrings:DefaultConnection"));
})
.Build();
await host.RunAsync();发布于 2021-12-02 12:49:18
IHostBuilder.ConfigureServices接受带有两个参数的操作,第一个参数是HostBuilderContext公开配置属性(您使用的配置属性来自HostingHostBuilderExtensions),因此尝试:
.ConfigureServices((ctx, services)=>
{
services
...
.AddDbContext<nbiot_core_svctestContext>(
options => options.UseSqlServer(ctx.Configuration.GetConnectionString("DefaultConnection"));
})https://stackoverflow.com/questions/70199266
复制相似问题