亚音速3.0.0.3多个数据库连接故障转移
上午使用MVC和亚音速3.0.0.3,但我似乎无法针对多个数据库连接的特定点。亚音速3.0.0.3多个数据库连接故障转移
通常在正常的.NET我有我的2串在web.config文件 ,并有一个数据库类为我的项目,该DB类中,我会做这样的事情:
try
{
conn.ConnectionString = server1;
conn.Open();
}
catch (MySqlException)
{
conn.ConnectionString = server2;
conn.Open();
}
我我试图在亚音速创建的文件中找到一个地方,在这样的地方最好放置这些文件,并且可能会提供一个关于如何实现它的最新示例。我已经使用Google等,但显示的例子是一个较旧的亚音速。
千恩万谢
如果您在Context.tt在第35行看看,你会看到下面的代码:
public <#=DatabaseName#>DB()
{
DataProvider = ProviderFactory.GetProvider("<#=ConnectionStringName#>");
Init();
}
这是供应商越来越设置为你,所以如果你加入在第20行的ConnectionStringName之后的Settings.ttinclude中的BackupConnectionStringName变量,那么你应该能够检查你的连接是否正常工作,如果没有,你应该能够检查你的后备。例如:
public <#=DatabaseName#>DB()
{
DataProvider = ProviderFactory.GetProvider("<#=ConnectionStringName#>");
Init();
try
{
DataProvider.CreateConnection();
}
catch(SqlException)
{
DataProvider = ProviderFactory.GetProvider("<#=BackupConnectionStringName#>");
Init();
}
}
注意您可能需要做一些清理以确保连接不会被CreateConnection打开。
是的,那是我要去哪里,好东西谢谢 – davethecoder 2009-09-28 09:07:13
var myconn = DataProvider.CreateConnection(); myconn.Close(); 涵盖了try块中成功尝试的结束 – davethecoder 2009-09-28 09:13:45
我可以只添加,我已经看到亚音速页面说,我可以扩展我所有的代码连接字符串,但我希望实际上在模型类中捕获此.....我创建了provider2和DataProvider2但不知道在哪里接受它,int()on context.cs似乎只是使用提供者来创建一切,我在ExcecuteTransaction中看到一个connection.open,但我很努力地知道连接在哪里或如何工作。 谢谢 – davethecoder 2009-09-25 07:56:19