Bis zu EF5, um eine Verbindung zu SQL Server 2012 herzustellen, muss ich lediglich eine Verbindungszeichenfolge angeben, die ungefähr so aussieht:
%Vor%Diese Methode funktioniert nicht mit EF6 und gibt Ausnahme
Kein Entity Framework-Anbieter für den ADO.NET-Provider 'System.Data.Odbc' gefunden. Stellen Sie sicher, dass der Anbieter im Abschnitt 'entityFramework' der Anwendungskonfigurationsdatei registriert ist
Ich benutze app.config
file überhaupt nicht, ich übergebe die obige Verbindungszeichenfolge an den MyContext-Konstruktor. WARUM versucht es, Odbc-Provider überhaupt zu verwenden und stattdessen System.Data.SqlClient nicht zu verwenden?
Was muss getan werden, um eine Verbindung mit SQL Server mit EF6-Code zuerst herzustellen? Ich stellte sicher, dass EntityFramework.dll und EntityFramework.SqlServer.dll beide im Anwendungsordner verfügbar sind. Ich habe sogar das EF6 nugget-Paket v6.0.0.1 im WPF-Projekt hinzugefügt, obwohl es die EF-Bibliothek nicht direkt verwendet und dafür sorgt, dass die automatisch erstellte App.Config-Datei (durch nuget) in den Ordner Anwendung (Debug) kopiert wird - immer noch nicht Erfolg.
Ich habe auch versucht, den Anbieter manuell im Code einzustellen:
%Vor%Immer noch kein Erfolg. Meine Projektstruktur ist wie folgt (vereinfacht):
WPF-Projekt - hat keinen Verweis auf EF (auch versucht, eine EF-Referenz hinzuzufügen)
ViewModel-Klassenbibliothek - hat keinen Verweis auf EF
Modellklassenbibliothek - verweist auf EF-Bibliothek (beide DLLs)
Datenklassenbibliothek - verweist auf die UI-Bibliothek (beide DLLs).
Ich verwende den CodeFirst-Ansatz, und dieses Setup funktioniert problemlos mit EF5. Jede Hilfe wird sehr geschätzt.
Ich hatte das gleiche Problem, und ich versuchte schließlich das Folgende und es funktionierte (Glimpse EF5 & Glimpse ADO-Pakete halten)
In der Datei "web.config" habe ich eine Kopie der vorhandenen Provider-Zeile hinzugefügt, aber den invarianten Namen in "System.Data.Odbc" geändert.
%Vor%Ich hoffe, dass das hilft.
Jonathan
Ja, für mich wurde es gelöst, indem Glimpse.ADO und Glimpse.EF5 nugget Pakete entfernt wurden. Danke.
Option 1: Fügen Sie in app.config des ausführbaren Projekts Folgendes hinzu:
%Vor%Option 2: Wenn Sie die code-basierte Providerregistrierung verwenden möchten, befolgen Sie die Richtlinie zu Entity Framework-Providern für EF6
Tags und Links entity-framework entity-framework-6