ASP.net 多数据库链接

标签 asp.net asp.net-mvc entity-framework azure azure-sql-database

我有 2 个 Windows Azure 数据库服务器,它们具有相同的表方案,但数据不同。
在我的 asp.net 站点中,我像这样连接第一个数据库:

Web.config

<add name="FirstDBContext" connectionString="..." providerName="..." />

DatabaseContext.cs

public class FirstDBContext: DbContext
{
   public DbSet<Data> Datas{ get; set; }
}

DatasController.cs

private UsersContext db = new UsersContext();
public ViewResult Index()
{
   return View(db.Datas.ToList());
}

如您所见,我在代码中设置了数据库。我怎样才能改变这一点,以便能够通过下拉列表动态地将一个数据库更改为另一个数据库?

非常感谢!

最佳答案

初始化UsersContext时可以传递连接字符串的名称

例如,如果您有以下连接搅拌

<add name="csFirstDB" connectionString="..." providerName="..." />
<add name="csSecondDB" connectionString="..." providerName="..." />

您可以将 UsersContext 更改为

public class UsersContext : DbContext {
    public UsersContext (string connectionName) : base(connectionName){ }
}

现在,当您初始化 UsersContext 类对象时,传入连接字符串名称,它将引用该特定数据库。

关于ASP.net 多数据库链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12347077/

相关文章:

asp.net - 我为打印调用了一个 javascript 函数,但不起作用

asp.net - 在 Visual Studio 2017 中重命名项目

jquery - Kendo Dropdownlist 与 json 对象的级联

c# - HttpClient 获取同一网站内的数据

javascript - 结合 Razor 和 JavaScript

entity-framework - DbContext 在长时间运行的进程中的生命周期

c# - IoC、UnitOfWork 与 Ninject 和 Entity Framework

asp.net - Visual Studio 高级查询生成器 MySql 在表名称前添加 “def.”

c# - Entity Framework 和加密数据库

c# - 如何将跟踪输出发送到文件系统中的文件?