EntityFramework 6 Configuração baseada em código da cadeia de conexão para o banco de dados primeiro

Estou tentando fazer com que um aplicativo existente funcione sem um app.config (é necessário devido a um ambiente muito específico). O problema é que ele depende muito do EntityFramework 6 para trabalhar com um SQL-Server.

Estou tentando usar umconfiguração baseada em código, mas não consigo descobrir como fornecer uma cadeia de conexão correta através da minha classe de configuração.

Eu fiz uma classe de configuração:

public class MyConfiguration : DbConfiguration
{
    public MyConfiguration()
    {
        SetDefaultConnectionFactory(new MyConnectionFactory());
        SetProviderServices("System.Data.SqlClient", System.Data.Entity.SqlServer.SqlProviderServices.Instance);
    }
}

Em seguida, forneci-o ao meu DbContext (gerado pelo EF automaticamente a partir do BD):

[DbConfigurationType(typeof(MyConfiguration))]
public partial class TestModelEntities
{           
}

Com um connection factory personalizado:

public class MyConnectionFactory : IDbConnectionFactory
{
    public DbConnection CreateConnection(string nameOrConnectionString)
    {
        var newConnStringBuilder = new SqlConnectionStringBuilder
        {
            UserID = "user",
            Password = "pass",
            InitialCatalog = "databaseName",
            DataSource = "serverName"
        };

        var entityConnectionBuilder = new EntityConnectionStringBuilder
        {
            Provider = "System.Data.SqlClient",
            ProviderConnectionString = newConnStringBuilder.ToString(),
            Metadata = @"res://*/TestModel.csdl|
                            res://*/TestModel.ssdl|
                            res://*/TestModel.msl"
        };

        var newDbConnect = new EntityConnection(entityConnectionBuilder.ToString());
        return newDbConnect;
    }
}

Contudo. Quando eu testo, recebo umaUnintentionalCodeFirstException. Por quê? o que estou perdendo?

questionAnswers(2)

yourAnswerToTheQuestion