跨环境管理多个数据库 ID

时间:2021-01-30 15:14:55

标签: database asp.net-core environment

在工作中,我们有用于生产和开发环境的不同数据库。这些数据库具有相同的架构,但数据却大不相同。

我们有多个“行为变量”,在后端,它们会导致这样的代码

switch(row.ProcessID)
{
    case 1:
        buy();
        break;
    case 2:
        sell();
        break;
}

当然,这里的问题是用于生产的相同代码应该看起来像这样

switch(row.ProcessID)
{
    case 2:
        buy();
        break;
    case 8:
        sell();
        break;
}

问题是我如何处理那些在开发和生产中不同的 ID?

1 个答案:

答案 0 :(得分:0)

您可以注入 IWebHostEnvironment 以使用 IsDevelopment()IsProduction() 扩展来满足您的要求:

using Microsoft.Extensions.Hosting;
using Microsoft.AspNetCore.Hosting;

public class HomeController : Controller
{
    private readonly IWebHostEnvironment _env;
    public HomeController(IWebHostEnvironment env)
    {
        _env = env;
    }

    public async Task<IActionResult> Index()
    {
        switch (row.ProcessID)
        {
            case 1:
                buy();
                break;

            case 2:
                if (_env.IsDevelopment())
                {
                    sell();
                }
                else
                {
                    buy();
                }
                break;
            case 8:
                sell();
                break;
        }
    }
}

如果您使用 asp.net core 2.x,则需要使用 IHostingEnvironment

相关问题