动态更改连接

时间:2010-05-10 15:21:33

标签: subsonic subsonic2.2 connection-string

我有一个包含50个数据库的SQL服务器。每个人都有完全相同的架构。 我使用了令人敬畏的Subsonic 2.2基于其中一个创建DAL。

我需要遍历一个数据库名称列表并连接到每个名称并一次执行一个更新。

如果有办法改变亚音速使用连接字符串的方式。我相信我需要将连接字符串存储在内存中,以便它能够不断变化。

这可能吗?

我试过做

ConfigurationManager.ConnectionStrings["theConnStrName"].ConnectionString = updated-connection-string-here;

..但那不起作用

谢谢!

2 个答案:

答案 0 :(得分:1)

如果不为每个数据库创建SubSonic提供程序,我认为不容易修复。

相反,我会把SubSonic-source作为一个项目放在解决方案中并调试我的方式到最好和最干净的地方扩展代码wwith某种连接字符串字典列表和功能来设置你想要的一个给定时间。

答案 1 :(得分:1)

Subsonic主要是为一个数据库而设计的。 我已经通过几种方式完成了多个数据库。我已经发布了一个完整的示例,用于在旧论坛中为亚音速创建提供程序。这些帖子现在已经不见了。您可以尝试在配置文件(yourProviderName)中设置一个提供程序,使用虚拟连接字符串来初始化亚音速,然后在代码中根据需要设置实际连接字符串。这仅适用于一次一个数据库,但我认为这是您所需要的。如果您想同时使用多个数据库,并且需要更多代码和对亚音速2.x核心的一些更改。

DataProvider provider = DataService.GetInstance(yourProviderName);
foreach(string connString in connectionStrings)
{
    provider.DefaultConnectionString = connString;
    DataService.Provider = provider;
    // ... do stuff
}