gpt4 book ai didi

c# - 如何访问 DbContext 类中的配置?

转载 作者:行者123 更新时间:2023-11-30 15:17:11 24 4
gpt4 key购买 nike

我正在使用 ASP.NET Core 2 我正在尝试访问上下文类中的配置,我已经完成了这样的配置:在 Program.cs 中:

 public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
......
.ConfigureAppConfiguration((builderContext, config) =>
{
IHostingEnvironment env = builderContext.HostingEnvironment;

config.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true);
})

.Build();

在 Startup.cs 中:

 public Startup(IConfiguration configuration)
{
Configuration = configuration;
}

我可以像这样在 Controller 中访问它:

public HomeController(IConfiguration configuration)
{...}

但是我如何在上下文类中访问它?谢谢

最佳答案

在您需要 DbContext 类中的 IConfiguration 的情况下,您必须将其添加到构造函数中:

public class MyDbContext : DbContext
{
private readonly IConfiguration _configuration;

public MyDbContext(IConfiguration configuration)
{
_configuration = configuration;
}
}

但是您还必须从 DI 获取 MyDbContext。所以静态类不能接收它作为参数。您将不得不重新考虑如何使用 DbContext,并对其进行更改,以便您可以在某个地方获得可以访问 DI 的上下文,并将其作为参数传递给需要它的任何静态方法。

关于c# - 如何访问 DbContext 类中的配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47131270/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com