2011-11-10 53 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方法中运行我们的程序