Установите строку соединения Entity Framework в Runtime в C #

Мне нужно установить строку подключения 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"); 

Я надеюсь, это поможет.

Спасибо