2011-11-10 51 views
1

是否有任何.netTiers忍者那裏知道如何在運行時更改數據庫連接?.nettiers在運行時更改連接

我發現他們的文檔下面的文章: http://www.nettiers.net/DataLayer.ashx

接近年底,它有一個代碼片段演示如何做到這一點,但我已經完全遵循這個片段中,它仍然沒有按」 t似乎工作。

這裏是我的代碼(名稱已被更改,以保護無辜:-):

DataRepository.AddConnection("localDynamic", "Data Source=myserver;Initial Catalog=myDB;Integrated Security=True"); 

TList<Patient> patients = DataRepository.Connections["localDynamic"].Provider.PatientProvider.GetAll(); 

,這裏是web.config中 - 在網絡配置的連接字符串註釋掉,這樣我可以測試動態變化的連接字符串:

<configuration> 
    <configSections> 
    <section name="dcPlatinum.Data" 
    type="dcPlatinum.Data.Bases.NetTiersServiceSection, dcPlatinum.Data" 
    allowDefinition="MachineToApplication" 
    restartOnExternalChanges="true" /> 
    </configSections> 
    <!--<connectionStrings> 
    <add name="netTiersConnectionString" connectionString="Data Source=myServer;Initial Catalog=myDB;Integrated Security=True" /> 
    </connectionStrings>--> 

    <dcPlatinum.Data defaultProvider="SqlNetTiersProvider"> 
    <providers> 
     <add 
     name="localDynamic" 
     type="dcPlatinum.Data.SqlClient.SqlNetTiersProvider, dcPlatinum.Data.SqlClient" 
     connectionStringName="localDynamic" 
     providerInvariantName="System.Data.SqlClient" 
     entityFactoryType="dcPlatinum.Entities.EntityFactory" 
     useEntityFactory="true" 
     enableEntityTracking="false" 
     enableMethodAuthorization="false" 
     useStoredProcedure="false" 

     /> 
    </providers> 
    </dcPlatinum.Data> 
    <system.web> 
     <compilation debug="true" targetFramework="4.0" /> 
    </system.web> 

</configuration> 

正在發生的是,它沒有找到與「localDyanmic」鍵連接字符串的問題...

思想S'

+0

請問您可以在這裏發佈正確答案..我正在尋找同樣的東西 – prasy

+0

不幸的是,我沒有一個正確的答案。我們最終放棄了網絡解決方案。如果您發現下面的答案適合您,請告訴我,我會將其標記爲接受的答案。 – Scot

+0

有人在尋找這個問題的答案看到它[這裏](http://nettiers.net/%28S%28shoyyl55dtdwuwiuu0kdz255%29%29/DataLayer.ashx)。轉到高級主題 - >動態連接字符串。 – prasy

回答

2

你現在可能已經想通了這一點,但以防萬一,你還在試圖....

我們已經在我們目前的項目工作動態連接,您發佈的代碼看起來好像沒什麼問題。

但我認爲你仍然需要引用連接字符串,該連接字符串在提供程序配置部分的web.config中註冊。因此取消註釋連接字符串,然後將提供者部分更改爲引用'netTiersConnectionString'而不是'localDynamic'。

netTiers應該忽略它並在運行時使用localDynamic。

此外,請確保在應用程序啓動時每個連接字符串運行一次DataRepository.AddConnection方法。我們在Global.asax的Application_Start方法中運行我們的程序