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.