Conectando-se ao SQL Server com EF6
Até o EF5, para se conectar ao SQL Server 2012, tudo que eu precisava era especificar uma string de conexão que se parecesse com isso:
Data Source=.\SqlExpress;Initial Catalog=MyDatabase;Integrated security=True;MultipleActiveResultSets=True
Este método não está funcionando com o EF6, dando exceção
Nenhum provedor do Entity Framework foi encontrado para o provedor ADO.NET 'System.Data.Odbc'. Verifique se o provedor está registrado na seção 'entityFramework' do arquivo de configuração do aplicativo
Não estou usandoapp.config
arquivo em tudo, estou passando acima da string de conexão para o construtor MyContext. Por que ele está tentando usar o provedor Odbc, e não usando System.Data.SqlClient?
O que precisa ser feito para se conectar ao SQL Server com o código EF6 primeiro? Eu certifiquei-me de que EntityFramework.dll e EntityFramework.SqlServer.dll estivessem ambos disponíveis na pasta Application. Eu até adicionei o pacote EF6 nuget v6.0.0.1 no projeto WPF, embora ele não use a biblioteca EF diretamente, e certificando-se de que o arquivo App.Config criado automaticamente (por nuget) seja copiado para a pasta Application (Debug) - ainda não sucesso.
Eu também tentei configurar o provedor manualmente no código:
public class OeeCoachConfiguration : DbConfiguration
{
public OeeCoachConfiguration()
{
SetProviderServices("System.Data.SqlClient",
System.Data.Entity.SqlServer.SqlProviderServices.Instance);
}
}
Ainda sem sucesso. Minha estrutura de projeto é a seguinte (simplificada):
Projeto WPF - não tem referência a EF (também tentou adicionar referência EF)
Biblioteca de classes ViewModel - não tem referência a EF
Biblioteca de classes de modelo - tem referência à biblioteca EF (ambas as dlls)
Biblioteca de classes de dados - tem referência à biblioteca de interface do usuário (ambas as dlls).
Eu estou usando a abordagem CodeFirst, e esta configuração funciona sem nenhum problema com o EF5. Qualquer ajuda é muito apreciada.