Como especificar EntityFramework ProviderName em uma função do Azure

Estou tentando portar algum código de webjob para as novas funções do Azure. Até agora, consegui importar minhas DLLs e referenciá-las com êxito, mas quando uso a cadeia de conexão no meu código, recebo um erro dizendo que tenho que adicionar o ProviderName:

A cadeia de conexão 'ConnectionString' no arquivo de configuração do aplicativo não contém o atributo providerName obrigatório ".

O que normalmente não é um problema porque, em um emprego na Web (ou aplicativo Web), ele estará no App ou Web.config e a cadeia de conexão será simplesmente substituída pelo que eu inseri no Azure.

Com o Azure Functions, não tenho um web.config (embora tentei adicionar um sem sucesso), então, naturalmente, o nome do provedor está ausente.

Como eu especifico isso?

EDITAR: Depois de algumas brincadeiras e algumas dicas úteis das pessoas abaixo, euquase conseguiu fazê-lo funcionar.

O que faço agora é o seguinte:

    var connString = **MY CONN STRING FROM CONFIG**; // Constring without metadata etc.
    EntityConnectionStringBuilder b = new EntityConnectionStringBuilder();
    b.Metadata = "res://*/Entities.MyDB.csdl|res://*/Entities.MyDB.ssdl|res://*/Entities.MyDB.msl";
    b.ProviderConnectionString = connString.ConnectionString;
    b.Provider = "System.Data.SqlClient";
    return new MyDB(b.ConnectionString);

O que me dá o que eu preciso para chamar o banco de dados. Uso um método estático em uma classe parcial para obter uma instância do banco de dados que executa o código acima e decore meu MyDB Partial com[DbConfigurationType(typeof(MyDbConfiguration))]

Eu defino essa configuração como:

public class MyDBConfiguration: DbConfiguration
{
    public MyDBConfiguration()
    {
        SetProviderFactory("System.Data.EntityClient", EntityProviderFactory.Instance);
    }
}

Minhasproblema permanece quando eu quero realmente usar as entidades EF. Aqui, ele tentará inicializar o tipo de banco de dadosusando a configuração original, dando-me o erro original mais uma vez. Conforme esse rastreamento de pilha:

at Void Initialize()
at System.Data.Entity.Internal.EntitySetTypePair GetEntitySetAndBaseTypeForType(System.Type)
at Void InitializeContext()
at System.Data.Entity.Core.Objects.ObjectContext CreateObjectContextFromConnectionModel()
at Void Initialize()
at Boolean TryInitializeFromAppConfig(System.String, System.Data.Entity.Internal.AppConfig)
at Void InitializeFromConnectionStringSetting(System.Configuration.ConnectionStringSettings)

assimcomo evito isso? Acho que preciso de uma maneira de me conectar a tudo e executar meu setter personalizado.

questionAnswers(6)

yourAnswerToTheQuestion