Establecer la cadena de conexión de Entity Framework en tiempo de ejecución en C #

Necesito configurar mi cadena de conexión Entity Framework en tiempo de ejecución. En este momento, tengo lo siguiente:

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();
}

Cuando ejecuto el código anterior (con los valores de {parámetro} reemplazados), aparece el siguiente error:

Palabra clave no admitida: 'fuente de datos'.

¿Qué estoy haciendo mal?

Respuestas a la pregunta(4)

Su respuesta a la pregunta