Herstellen einer Verbindung mit SQL Server mit EF6

Bis EF5 muss ich zum Herstellen einer Verbindung zu SQL Server 2012 lediglich eine Verbindungszeichenfolge angeben, die ungefähr so ​​aussieht:

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

Diese Methode funktioniert nicht mit EF6, mit Ausnahme von

Es wurde kein Entity Framework-Anbieter für den ADO.NET-Anbieter 'System.Data.Odbc' gefunden. Stellen Sie sicher, dass der Anbieter im Abschnitt 'entityFramework' der Anwendungskonfigurationsdatei registriert ist

Ich benutze nichtapp.config Datei überhaupt übergebe ich über Verbindungszeichenfolge an MyContext-Konstruktor. Warum wird versucht, den Odbc-Anbieter überhaupt zu verwenden und stattdessen nicht System.Data.SqlClient zu verwenden?

Was muss getan werden, um mit EF6 Code-First eine Verbindung zu SQL Server herzustellen? Ich habe sichergestellt, dass EntityFramework.dll und EntityFramework.SqlServer.dll beide im Anwendungsordner verfügbar sind. Ich habe sogar das EF6-Nuget-Paket v6.0.0.1 im WPF-Projekt hinzugefügt, obwohl es die EF-Bibliothek nicht direkt verwendet, und sichergestellt, dass die automatisch erstellte App.Config-Datei (von Nuget) in den Anwendungsordner (Debug) kopiert wird Erfolg.

Ich habe auch versucht, den Provider manuell im Code zu setzen:

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

Immer noch kein Erfolg. Meine Projektstruktur ist wie folgt (vereinfacht):

WPF-Projekt - hat keinen Verweis auf EF (es wurde auch versucht, einen EF-Verweis hinzuzufügen)

ViewModel-Klassenbibliothek - verweist nicht auf EF

Modellklassenbibliothek - Verweis auf EF-Bibliothek (beide DLLs)

Datenklassenbibliothek - Verweis auf UI-Bibliothek (beide DLLs).

Ich verwende den CodeFirst-Ansatz und dieses Setup funktioniert problemlos mit EF5. Jede Hilfe wird sehr geschätzt.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage