gpt4 book ai didi

c# - 在开发中使用 MySQL,在生产中使用 SQL Server

转载 作者:行者123 更新时间:2023-11-29 05:57:10 25 4
gpt4 key购买 nike

我想在本地计算机上使用 mysql,在生产服务器上使用 SQL Server。

这是我在 Startup.cs 中尝试做的事情:

我有两种方法:

public void ConfigureServices(IServiceCollection services)
{
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
}

不幸的是,我必须将其中一行放在 ConfigureServices 方法中:

services.AddDbContext<DbContext>(options => options.UseMySQL("..."));

services.AddDbContext<pluginwebContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

但是 ConfigureServices 没有提供 env 参数所以我不能测试:

if (env.IsDevelopment())

最佳答案

将托管环境注入(inject)启动并设置为类中的字段/属性,以便您访问它。

引用 Application startup in ASP.NET Core

The Startup class constructor accepts dependencies defined by the host. A common use of dependency injection into the Startup class is to inject IHostingEnvironment to configure services by environment:

public class Startup {
public Startup(IHostingEnvironment env) {
HostingEnvironment = env;
}

public IHostingEnvironment HostingEnvironment { get; private set; }

public void ConfigureServices(IServiceCollection services) {
if (HostingEnvironment.IsDevelopment()) {
// Development configuration
services.AddDbContext<DbContext>(options => options.UseMySQL("..."));
} else {
// Staging/Production configuration
services.AddDbContext<pluginwebContext>(options => options.UseSqlServer("...");
}
}
}

链接中还提供了一个替代选项,您可以在其中使用基于约定的方法。

关于c# - 在开发中使用 MySQL,在生产中使用 SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48388876/

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