我正在使用MVC和Subsonic 3.0.0.3,但我似乎无法确定多个数据库连接的特定点。
通常在正常.net中我会在web.config文件中有我的2个字符串 并且我的项目有一个数据库类,在这个db类中我会做这样的事情:
try
{
conn.ConnectionString = server1;
conn.Open();
}
catch (MySqlException)
{
conn.ConnectionString = server2;
conn.Open();
}
我试图确定亚音速创建文件中的一个位置,这样的地方最好放置,也许是一个如何实现它的最新示例。我用google搜索等,但显示的例子是用于较老的亚音速。
非常感谢答案 0 :(得分:1)
如果您在第35行查看Context.tt,您将看到以下代码:
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不会保持连接处于打开状态。