Service 在运行时更改连接字符串

Service 在运行时更改连接字符串,service,polling,Service,Polling,我在轮询服务中有一个配置文件和一个具有不同方法的轮询服务。我希望发生的是,当它点击轮询服务中的某个方法时,我希望将配置文件中的连接字符串更改为: <add name="Entity" connectionString="metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data

我在轮询服务中有一个配置文件和一个具有不同方法的轮询服务。我希望发生的是,当它点击轮询服务中的某个方法时,我希望将配置文件中的连接字符串更改为:

<add name="Entity" connectionString="metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=dev;Initial Catalog=DB;Persist Security Info=True;User ID=a;Password=asdf;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />

为此:

 <add name="Entity" connectionString="metadata=res://*/Model.csdl|res://*/Model.ssdl|res://*/Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=dev_Test;Initial Catalog=DB_Test;Persist Security Info=True;User ID=a;Password=asdf;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />

请帮忙


谢谢。

如果您确实想更改app.config文件,可以执行以下操作:

  var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

  config.ConnectionStrings.ConnectionStrings["Entity"].ConnectionString = YourNewConnectionString;
  config.Save();
如果只需要更改数据源是内部连接字符串,而不想解析实体连接字符串,则可以使用连接字符串生成器,如下所示:

var entityBuilder = new EntityConnectionStringBuilder(ConfigurationManager.ConnectionStrings["Entity"].ConnectionString);
var sqlBuilder = new SqlConnectionStringBuilder(entityBuilder.ProviderConnectionString);

sqlBuilder.DataSource = "dev_Test";

entityBuilder.ProviderConnectionString = sqlBuilder.ToString();

var connectionString = entityBuilder.ToString();