2

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

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

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

这可能吗?

我试着做一个

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

..但这没有用

谢谢!

4

2 回答 2

1

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

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

于 2010-05-11T11:03:32.513 回答
1

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

DataProvider provider = DataService.GetInstance(yourProviderName);
foreach(string connString in connectionStrings)
{
    provider.DefaultConnectionString = connString;
    DataService.Provider = provider;
    // ... do stuff
}
于 2010-05-11T19:09:50.363 回答