【问题标题】:SubSonic 2.2: DefaultConnectionStringSubSonic 2.2:默认连接字符串
【发布时间】:2023-04-01 15:19:02
【问题描述】:

我在这里可能有点过头了 - 但希望有人能指出我正确的方向。

使用 SubSonic 2 的最新 SOURCE 文件 - 我需要能够根据 USER 为特定请求操作 CONNECTIONSTRING。

我想我可以修改 DefaultConnectionString 是 DataProvider.cs - 但是 HttpContext.Current 在调用该属性时似乎总是为空(即使它是通过 http 请求。)

SubSonic 什么时候调用它?我假设它是在页面生命周期不存在的时候,因此 HTTPCONTEXT/PROFILE 数据总是丢失。

有没有办法解决这个问题?基本上我有几个相同的结构数据库,我希望使用 SubSonic(相同的结构)访问,我想根据当前用户的个人资料选择要使用的数据库,有什么建议吗?

【问题讨论】:

    标签: subsonic


    【解决方案1】:

    您可以在配置中指定多个提供程序,然后选择在运行时使用哪个提供程序。有关如何操作的详细信息,请参阅以下问题:

    Separate Read/Write Connection for SubSonic

    【讨论】:

      【解决方案2】:

      如果您在 web.config 中依赖多个提供程序,仍然无法帮助您在运行时附加到新数据库,因为您将硬编码连接字符串。对于 Windows 窗体应用程序,切换连接字符串非常容易。对于 Web 应用程序,您必须非常确定同时进行的 Web 会话只能看到它们分配的数据库。 ss2x 中有很多静态因素让这变得不那么容易。

      这在之前已经介绍过,您可以将其用作 google 搜索: "shareddbconnectionscope 站点:http://subsonicproject.com"

      许多旧论坛讨论和代码示例现已不复存在。

      文档中有一些信息。 http://www.subsonicproject.com/docs/3.0_Multiple_Databases

      我认为这是一个有趣的话题。大多数 ORM 并不能很好地处理多个数据库: Am I the only one that queries more than one database?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-19
        • 2017-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-12
        相关资源
        最近更新 更多