Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
亚音速SQLite多文件_Sqlite_Subsonic - Fatal编程技术网

亚音速SQLite多文件

亚音速SQLite多文件,sqlite,subsonic,Sqlite,Subsonic,我有一个必须为许多用户访问的应用程序。 为了优化性能,我打算将每个用户配置文件信息存储在独立的数据库文件中 每次用户登录应用程序时,我都需要设置一个与自己的数据库链接的新提供者。 所有数据库都具有相同的结构。因此,在查询用户时,commom生成的DAL类必须切换到相对于用户的数据库文件 有没有办法配置亚音速在运行时切换 谢谢。好吧,假设我们谈论的是亚音速3: 我已经为此制作了一个补丁,并将其作为一个问题记录在github的亚音速模板项目中,该项目的源代码是可用的。您可以找到问题(以及代码的链接)

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

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

有没有办法配置亚音速在运行时切换


谢谢。

好吧,假设我们谈论的是亚音速3:

我已经为此制作了一个补丁,并将其作为一个问题记录在github的亚音速模板项目中,该项目的源代码是可用的。您可以找到问题(以及代码的链接)

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

你可以走了


对于亚音速2,听起来像是您想要的。

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

看看我的回答:


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

Jon我使用的是亚音速2.0,无法访问源代码。还有其他选择吗?谢谢@马库斯:更新了我的答案,指向一个相关的亚音速2问题。
YourSubSonicGeneratedNamespace.YourDatabaseName.DefaultDataProvider =
    SubSonic.DataProviders.ProviderFactory.GetProvider(
        "your connection string here",
        SubSonic.DataProviders.DbClientTypeName.SqlLite);