我首先使用ef6-database构建了一个应用程序,以从3个不同的服务器位置查看相同的数据库,并可以在应用程序通过简单的下拉列表运行时在它们之间进行切换。
根据我到目前为止所读的内容,我应该能够使用3个连接字符串,其中一个为默认值,然后根据用户选择选择正确的字符串。
问题: 当应用程序已经在运行时,我们如何推送新的连接字符串/重新加载?
Web.Config
<add name="MasterDev" connectionString="removed for security" />
<add name="MasterUAT" connectionString="removed for security" />
<add name="MasterLive" connectionString="removed for security" />
控制器-主页
private MasterDev db = new MasterDev("MasterDev");
型号
public partial class MasterDev : DbContext
{
public MasterDev(string nameOrConnectionString)
: base(nameOrConnectionString)
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<application> applications { get; set; }
}
控制器-设置
public ActionResult Index()
{
switch (Request.Form["ddltest"])
{
case "ConString1":
// Set some variable to connection string 1
break;
case "Constring2":
// Set some variable to connection string 2
break;
default:
// Set some variable to default connection string
break;
}
return View();
}
查看-设置页面
@Html.DropDownList("ddltest", new List<SelectListItem>
{
new SelectListItem{ Text="Connection String 1", Value = "1" },
new SelectListItem{ Text="Connection String 2", Value = "2" },
new SelectListItem{ Text="Connection String 3", Value = "3" }
}, new { @onchange = @"form.submit();", @class = "form-control" })