我有一个必须为许多用户访问的应用程序。 为了优化性能,我打算将每个用户配置文件信息存储在一个独立的数据库文件中。
每次用户登录应用程序时,我都需要设置与自己的数据库链接的新提供程序。 所有数据库都具有相同的结构。因此,在查询用户时,生成的DAL类必须相对于用户切换数据库文件。
有没有办法让SubSonic在运行时进行切换?
感谢。
答案 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
您可以为每个启动应用程序的用户创建一个,并根据需要更改默认提供程序,而不是仅使用一个提供程序。