Subsonic SQLite 多个文件

发布于 2024-08-31 23:34:48 字数 206 浏览 4 评论 0原文

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

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

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

谢谢。

I have an application that must be accessed for many users.
To optimize the performance I intend to store each user profile information at a independant database file.

I need everytime a user login the application, to setup a new provider linked with his own database.
All databases have the same structure. So while querying user the commom generated DAL classes must switch for the database file relative the the user.

Is there a way for configure SubSonic for doing that switch at runtime?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

命比纸薄 2024-09-07 23:34:48

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

我已经为此制作了一个补丁,并将其作为问题记录在 github 上的 SubSonic Templates 项目中,其中提供了源代码。您可以在此处。

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

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

然后你就可以开始了。

对于 SubSonic 2,这个答案听起来像你想要的。

Well, assuming we 're talking about SubSonic3:

I have made a patch for this and logged it as an issue in the SubSonic Templates project on github, where the source is available. You can find the issue (and a link to the code) here.

After you apply the patch, you will have a new DefaultDataProvider property which does exactly what you want. Use it like this (e.g. after a user logs in):

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

And you 're good to go.

For SubSonic 2, this answer sounds like what you want.

橘香 2024-09-07 23:34:48

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

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

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

With subsonic 2 I use an approach where I inject the provider at runtime rather than loading it from the app.config file.

Look at my answer here: Subsonic in a VS2008 Add-In woes

Instead of just using one provider you could create one for every user who starts the application and change the default provider as needed.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文