首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Net 6多连接字符串

Net 6多连接字符串
EN

Stack Overflow用户
提问于 2021-12-29 18:24:42
回答 2查看 911关注 0票数 3

如何在Net6 program.cs中设置多个连接字符串?我想使用Development、暂存和生产环境,它们都指向不同的数据库服务器。

NET 6. Program.cs:

代码语言:javascript
复制
builder.Services.AddDbContext<MyContext>(options =>
{
    options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection"));

});

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2021-12-29 18:52:10

这是你能做的。

首先,创建一个像这样的appsettings.json:

appsettings.json

代码语言:javascript
复制
{
  "Kestrel": {
    "Endpoints": {
      "Http": {
        "Url": "http://*:5000"
      }
    }
  },
  "WillAppConfig": {
    "ActiveEnvironment": "Development",
    "DevDatabase": "server:123.123.123.123, user: will, pass:1234",
    "STGDatabase": "server:123.123.123.123, user: will, pass:1234",
    "ProdDatabase": "server:123.123.123.123, user: will, pass:1234"
  }
}

然后在项目中的某个地方创建一个类,用于将配置映射到对象。

WillAppConfigurationMap.cs

代码语言:javascript
复制
public class WillAppConfigurationMap
{
    public string ActiveEnvironment { get; set; }
    public string DevDatabase { get; set; }
    public string STGDatabase { get; set; }
    public string ProdDatabase { get; set; }

}

最后,在Program.cs中,可以根据ActiveEnvironment的值选择要使用的连接字符串。

代码语言:javascript
复制
var builder = WebApplication.CreateBuilder(args);
WillAppConfig = builder.Configuration.GetSection("WillAppConfig").Get<WillAppConfigurationMap>();
var connectionString = "";
if (WillAppConfig.ActiveEnvironment == "Development")
{
     connectionString = WillAppConfig.DevDatabase
} 
else if (WillAppConfig.ActiveEnvironment == "Staging") 
{
    connectionString = WillAppConfig.STGDatabase
} 
else if (WillAppConfig.ActiveEnvironment == "Production") 
{
   connectionString = WillAppConfig.ProdDatabase
}

builder.Services.AddDbContext<MyContext>(options =>
{ 
    options.UseSqlServer(connectionString));
});
partial class Program
{
    public static WillAppConfigurationMap WillAppConfig { get; private set;}
}

如果不使用"Kestrel“部分,可以从appsettings.json中删除它。您可以使用这种方法映射任何appsettings.json结构。

然后,您可以访问您的配置对象在您的应用程序中的任何地方做Program.WillAppConfig

票数 2
EN

Stack Overflow用户

发布于 2022-03-01 06:42:29

在appsetting.json中创建具有不同名称的多个连接字符串:

代码语言:javascript
复制
builder.Services.AddDbContext<MyContext>(options => {   
    options.UseSqlServer(builder.Configuration.GetConnectionString(UseNameofConnectionString));
});

还可以创建扩展方法,在调用它时为您提供所需的connectionString。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70523442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档