Conexão de alteração do Entity Framework no tempo de execução
Eu tenho um projeto de API da web que faz referência a meu modelo e assemblies DAL. O usuário é apresentado com uma tela de login, onde ele pode selecionar bancos de dados diferentes.
Eu construo a string de conexão da seguinte forma:
public void Connect(Database database)
{
//Build an SQL connection string
SqlConnectionStringBuilder sqlString = new SqlConnectionStringBuilder()
{
DataSource = database.Server,
InitialCatalog = database.Catalog,
UserID = database.Username,
Password = database.Password,
};
//Build an entity framework connection string
EntityConnectionStringBuilder entityString = new EntityConnectionStringBuilder()
{
Provider = database.Provider,
Metadata = Settings.Default.Metadata,
ProviderConnectionString = sqlString.ToString()
};
}
Primeiro de tudo, como eu realmente mudo a conexão do contexto de dados?
E em segundo lugar, como este é um projeto de API da web, a cadeia de conexão (definida no login por acima) é persistente durante toda a interação do usuário ou deve ser transmitida toda vez ao meu contexto de dados?