亚音速SQLite多文件

时间:2010-05-12 20:58:49

标签: sqlite subsonic

我有一个必须为许多用户访问的应用程序。 为了优化性能,我打算将每个用户配置文件信息存储在一个独立的数据库文件中。

每次用户登录应用程序时,我都需要设置与自己的数据库链接的新提供程序。 所有数据库都具有相同的结构。因此,在查询用户时,生成的DAL类必须相对于用户切换数据库文件。

有没有办法让SubSonic在运行时进行切换?

感谢。

2 个答案:

答案 0 :(得分:1)

好吧,假设我们正在谈论SubSonic3:

我已经为此做了一个补丁,并将其记录为github上的SubSonic Templates项目中的问题,其中源代码可用。您可以找到问题(以及代码链接)here

应用修补程序后,您将拥有一个新的DefaultDataProvider属性,它可以完全满足您的需求。像这样使用它(例如在用户登录后):

YourSubSonicGeneratedNamespace.YourDatabaseName.DefaultDataProvider =
    SubSonic.DataProviders.ProviderFactory.GetProvider(
        "your connection string here",
        SubSonic.DataProviders.DbClientTypeName.SqlLite);

你很高兴。

对于SubSonic 2,this answer听起来就像你想要的那样。

答案 1 :(得分:0)

对于亚音速2,我使用的方法是在运行时注入提供程序,而不是从app.config文件加载它。

在这里查看我的答案:Subsonic in a VS2008 Add-In woes

您可以为每个启动应用程序的用户创建一个,并根据需要更改默认提供程序,而不是仅使用一个提供程序。