在C#中运行时设置entity framework连接字符串

我需要在运行时设置我的Entity Framework连接字符串。 现在,我有以下内容:

string connectionString = "metadata=res://*/DataModels.CustomerDataModel.csdl|res://*/DataModels.CustomerDataModel.ssdl|res://*/DataModels.CustomerDataModel.msl;provider=System.Data.SqlClient;provider connection string="data source=tcp:{serverName},{portNumber};initial catalog={databaseName};user id={username};multipleactiveresultsets=True;application name=EntityFramework""; using (CustomerEntities entities = new CustomerEntities(connectionString)) { CustomerEntity entity = new CustomerEntity(); // do more entities.CustomerEntities.Add(entity); entities.SaveChanges(); } 

当我执行上面的代码(替换{parameter}值)时,我收到以下错误:

不支持关键字:’数据源’。

我究竟做错了什么?

改变这个。

 string connectionString = "metadata=res://*/DataModels.CustomerDataModel.csdl|res://*/DataModels.CustomerDataModel.ssdl|res://*/DataModels.CustomerDataModel.msl;provider=System.Data.SqlClient;provider connection string="data source=tcp:{serverName},{portNumber};initial catalog={databaseName};user id={username};multipleactiveresultsets=True;application name=EntityFramework""; 

对此(请注意我如何逃脱“角色为”)

 string connectionString = @"metadata=res://*/DataModels.CustomerDataModel.csdl|res://*/DataModels.CustomerDataModel.ssdl|res://*/DataModels.CustomerDataModel.msl;provider=System.Data.SqlClient;provider connection string= ""data source=tcp:{serverName},{portNumber};initial catalog={databaseName};user id={username};multipleactiveresultsets=True;application name=EntityFramework"""; 

我知道这是在10个月前提出的,但我找到了一种更简单的方法来指定connectionString:

如果您的配置文件具有以下内容:

   

您可以将其指定为 –

 public const string ConnectionString = @"name=CustomerDataModel"; .. CustomerDBContext context = new CustomerDBContext(ConnectionString ); 

无需担心报价。 很多清洁工。

使用EntityConnectionStringBuilder和SqlConnectionStringBuilder更容易根据需要更改参数。

在web.config中设置多个连接字符串,如下所示:

 public partial class MyDatabaseEntities { public MyDatabaseEntities(string connection) : base(connection) { } } 

然后在您想要创建实体实例的任何地方,在参数中传递连接字符串名称:

 MyDatabaseEntities entities = new MyDatabaseEntities("CONNECTION_STRING_NAME"); 

我希望这将有所帮助。

谢谢