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?

questionAnswers(10)

yourAnswerToTheQuestion