【问题标题】:Change connection on the fly即时更改连接
【发布时间】:2010-05-10 15:21:33
【问题描述】:

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

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

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

这可能吗?

我试过了

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

.. 但这没有用

谢谢!

【问题讨论】:

    标签: subsonic subsonic2.2 connection-string


    【解决方案1】:

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

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

    【讨论】:

    • 嘿,保罗,我刚刚在网上输入了同样的问题,发现了我 4 年前的旧帖子!您能否分享您为“亚音速 2.x 核心”编写的自定义代码。成功了吗?
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-01
      • 2011-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-27
      相关资源
      最近更新 更多