Usando um Repositório EF com objetos de conexão personalizados?

Estou preso no EF 6 e a documentação é escassa - não resolvendo isso por um dia agora.

Eu tento usar o Code First em um repositório de banco de dados que temos. Devido à inicialização complexa Idevo usar meu próprio método de fábrica para inicializar a subclasse de contexto e eudevo coloque minha própria conexão sql ou faça minha própria fábrica.

A seguinte inicialização de classe:

temos:

public class Repository : DbContext {

static string _connectionString;

    static Repository() {
        Database.SetInitializer<Repository>(null);
        var type = typeof(System.Data.Entity.SqlServer.SqlProviderServices);
        _connectionString = ** method to get connection string**
    }

    public static Repository Create() {
        SqlConnection connection = new SqlConnection(_connectionString);
        connection.Open();
        connection.BeginTransaction(IsolationLevel.ReadCommitted).Commit();
        return new Repository(connection);
    }

Infelizmente, ele é executado com a seguinte exceção na primeira tentativa de selecionar alguma entidade:

Não foi possível determinar o nome do provedor para a fábrica do provedor do tipo 'System.Data.SqlClient.SqlClientFactory'. Verifique se o provedor ADO.NET está instalado ou registrado na configuração do aplicativo.

Estou totalmente louco para consertar isso.

Meu arquivo de configuração no aplicativo da web em uso lê:

  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="v11.0" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer, Version=6.0.0.0" />
    </providers>   
</entityFramework>

Alguém pode me dizer como consertar isso? Minha alternativa é voltar ao modelo primeiro - mas eu realmente gostaria de experimentar o código primeiro aqui.

questionAnswers(1)

yourAnswerToTheQuestion