Łączenie z serwerem SQL za pomocą EF6

Do EF5, aby połączyć się z SQL Server 2012, wszystko, czego potrzebowałem, to określić ciąg połączenia, który wygląda mniej więcej tak:

Data Source=.\SqlExpress;Initial Catalog=MyDatabase;Integrated security=True;MultipleActiveResultSets=True

Ta metoda nie działa z EF6, dając wyjątek

Nie znaleziono dostawcy Entity Framework dla dostawcy „System.Data.Odbc” ADO.NET. Upewnij się, że dostawca jest zarejestrowany w sekcji „entityFramework” pliku konfiguracyjnego aplikacji

Nie używamapp.config plik w ogóle, przekazuję powyżej ciąg połączenia do konstruktora MyContext. DLACZEGO próbuje w ogóle używać dostawcy Odbc, a nie używać System.Data.SqlClient?

Co należy zrobić, aby połączyć się z SQL Server za pomocą kodu EF6? Upewniłem się, że EntityFramework.dll i EntityFramework.SqlServer.dll są dostępne w folderze Application. Dodałem nawet pakiet EF6 nuget v6.0.0.1 w projekcie WPF, chociaż nie używa on bezpośrednio biblioteki EF i upewniając się, że automatycznie utworzony plik App.Config (przez nuget) jest kopiowany do folderu Application (Debug) - nadal nie powodzenie.

Próbowałem także ręcznie ustawić kod źródłowy:

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

Wciąż nie ma sukcesu. Moja struktura projektu jest następująca (uproszczona):

Projekt WPF - nie ma odniesienia do EF (próbowano również dodać odniesienie EF)

Biblioteka klasy ViewModel - nie ma odniesienia do EF

Biblioteka klas modeli - ma odniesienie do biblioteki EF (obie biblioteki DLL)

Biblioteka klasy danych - ma odniesienie do biblioteki UI (obie biblioteki DLL).

Korzystam z podejścia CodeFirst i ta konfiguracja działa bez problemu z EF5. Każda pomoc jest bardzo mile widziana.

questionAnswers(4)

yourAnswerToTheQuestion