2010-05-12 40 views
0

我有一個應用程序,必須爲許多用戶訪問。 爲了優化性能,我打算將每個用戶配置文件信息存儲在一個獨立的數據庫文件中。subsonic SQLite多個文件

我每次需要用戶登錄應用程序時,都需要設置一個與自己的數據庫鏈接的新提供程序。所有的數據庫都有相同的結構。因此,在查詢用戶時,生成的DAL類必須相對於用戶切換數據庫文件。

是否有配置SubSonic在運行時進行切換的方法?

謝謝。

+0

這是關於SubSonic 3的嗎? – Jon 2010-05-12 21:01:45

回答

1

好吧,假設我們正在談論SubSonic3:

我已經爲這個補丁並記錄它作爲在github亞音速模板項目中,提供源代碼的問題。你可以找到問題(和代碼鏈接)here

應用此修補程序後,您將擁有一個新的DefaultDataProvider屬性,該屬性完全符合您的需要。像這樣使用它(例如在用戶登錄後):

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

而且你很好。

對於SubSonic 2,this answer聽起來像你想要的。

+0

Jon 我正在使用Subsonic 2.0 而且我無法訪問源代碼。 還有另外一種選擇嗎? 謝謝! – 2010-05-13 12:59:34

+1

@Marcus:更新了我的答案,指出了相關的SubSonic 2問題。 – Jon 2010-05-13 18:16:12

0

亞音速2我使用的方法是在運行時注入提供程序,而不是從app.config文件加載它。

看我的答案在這裏:Subsonic in a VS2008 Add-In woes

而不是隻使用一個供應商,你可以創建一個誰啓動應用程序的每個用戶,並根據需要更改默認的供應商。