代码之家  ›  专栏  ›  技术社区  ›  davethecoder

亚音速3.0.0.3多数据库连接故障转移

  •  1
  • davethecoder  · 技术社区  · 16 年前

    正在使用MVC和亚音速3.0.0.3,但我似乎无法确定多个数据库连接的特定点。

    通常在普通.NET中,web.config文件中有两个字符串 并为我的项目创建一个数据库类,在这个db类中,我将执行如下操作:

    try
            {
                conn.ConnectionString = server1;
                conn.Open();
            }
            catch (MySqlException)
            {
                conn.ConnectionString = server2;
                conn.Open();
            }
    

    我试图在亚音速创建的文件中确定一个地方,在那里像这样的东西最好放置,也许是关于如何实现它的最新示例。我在谷歌等网站上搜索过,但所显示的例子是针对较老的亚音速飞机的。

    多谢

    1 回复  |  直到 16 年前
        1
  •  1
  •   Adam Cooper    16 年前

    如果您在context.tt中查看第35行,您将看到以下代码:

    public <#=DatabaseName#>DB() 
    { 
        DataProvider = ProviderFactory.GetProvider("<#=ConnectionStringName#>");
        Init();
    }
    

    这是提供程序为您获取设置的地方,因此,如果您在settings.ttinclude中在第20行的connectionStringName之后添加backupconnectionStringName变量,那么您应该能够检查连接是否正常工作,如果不正常,则使用回退。例如:

    public <#=DatabaseName#>DB() 
    { 
        DataProvider = ProviderFactory.GetProvider("<#=ConnectionStringName#>");
        Init();
        try
        {
            DataProvider.CreateConnection();
        }
        catch(SqlException)
        {
           DataProvider = ProviderFactory.GetProvider("<#=BackupConnectionStringName#>");
           Init(); 
        }
    }
    

    注意,您可能需要进行一些清理,以确保连接未被CreateConnection打开。

    推荐文章