【发布时间】:2020-08-15 10:09:20
【问题描述】:
这是 appsettings.json 文件中的连接字符串。
appsettings.json
"ConnectionStrings": {
"DefaultConnection": "Server=DESKTOP-11G3852\\SQLEXPRESS;Database=MyDB;Trusted_Connection=True;MultipleActiveResultSets=true",
"OfficeConnection": "Server=DESKTOP-DTUS54A;Database=MyDB;Trusted_Connection=True;MultipleActiveResultSets=true",
"LappyConnection": "Server=DESKTOP-J8PN84H;Database=MyDB;Trusted_Connection=True;MultipleActiveResultSets=true"
}
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection")));
.....
}
这里的问题是,每次我更换我的机器时,我都必须在 Sratup.cs 文件中手动设置连接。 在这里你可以看到我设置了 "DefaultConnection"。
我想要解决方案,比如我在 appsetings.json 文件中有多个连接字符串(现在这里我有 3 个连接字符串),它会检查是否使用第一个连接字符串(DefaultConnection)或不是。
如果没有,那么它将开始与第二个连接字符串(OfficeConnection)建立连接。
如果连接建立成功,那么我的网站应该继续使用第二个连接字符串(OfficeConnection)。
额外: 如果可能我的迁移也需要使用成功连接的连接字符串。
【问题讨论】:
-
如果您连接到默认数据库实例而不是命名的实例,那么您只需一个连接字符串即可实现此目的:“Server=.;Database=MyDB;Trusted_Connection=True;MultipleActiveResultSets=True”
标签: c# sql-server asp.net-mvc-3 .net-core