c# - 在 MVC Web 应用程序中连接到多个数据库

标签 c# .net asp.net-mvc entity-framework database-connection

如何为用 C# 编写的 .NET MVC Web 应用程序连接到不同的数据库?

这里数据库表的结构保持不变。所有改变的只是数据库名称。那么如何手动连接到数据库或使用修改连接字符串呢?

诀窍是使用相同的代码。根据 URL,我希望显示来自不同数据库的数据。所以 View 和 Controller (几乎)只有单一代码 w.r.t.该模型。

-数据

最佳答案

这是一种非常简单的方法来完成我认为您要问的事情。在您的 web.config 文件中,您可以定义两个连接字符串:

<connectionStrings>
    <add name="DevelopmentDB" providerName="System.Data.SqlClient"
        connectionString="Data Source=sql-dev.example.com;Initial Catalog=MyDB;User Id=MyUser;Password=MyPassword" />
    <add name="ProductionDB" providerName="System.Data.SqlClient"
        connectionString="Data Source=sql-prod.example.com;Initial Catalog=MyDB;User Id=MyUser;Password=MyPassword" />
</connectionStrings>

然后,在您的(基本) Controller 中,您可以创建一个根据请求返回适当连接字符串的方法,例如:

internal string ConnectionString
{
    get
    {
        return getConnectionStringByServerName(this.HttpContext.Request.ServerVariables["SERVER_NAME"]);
    }
}

internal string getConnectionStringByServerName(string serverName)
{
    if (serverName.Equals("localhost"))
    {
        return WebConfigurationManager.ConnectionStrings["DevelopmentDB"].ConnectionString;
    }
    else
    {
        return WebConfigurationManager.ConnectionStrings["ProductionDB"].ConnectionString;
    }
}

您当然可以根据最合理的情况更改选择标准。

祝你好运!

关于c# - 在 MVC Web 应用程序中连接到多个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1628931/

相关文章:

c# - 使用密码/带有密码保护的日记应用程序保护 Windows 窗体的最佳实践)?

c# - 将此 Json 转换成 C# 中的正确类结构是什么?

c# - Nuget 无法管理从 git 克隆的项目中的引用

c# - 如何将 MySQL 数据库数据推送到 MVC .NET Web 应用程序

asp.net-mvc - 适用于MVC 2 beta 2的MicrosoftMvcJQueryValidation.js的正确版本在哪里?

c# - 通过构造函数在 IoC 中强制执行依赖项?

c# - 在 C# 中对包含网格控件的列表框进行排序

c# - ASP.NET 运行时错误 : Ambiguous Match found

c# - 如何避免或限制 MDI 子窗体菜单条与 MDI 父窗体菜单条合并?

c# - 在 string.format 中使用特殊字符