Entity Framework-Verbindungszeichenfolge nicht von config
public class Context : DbContext
{
public Context(string connString) : base(connString)
{
Database.SetInitializer(new MyContextInitializer());
}
//...
Müssen, übergeben Sie eine Verbindungszeichenfolge, um die Kontext-Konstruktor. Wie soll der string Aussehen, zum Beispiel für SQL Compact? Versucht, aber kein Erfolg:
Context db = new Context("Provider=System.Data.SqlServerCe.4.0;Data Source=D:\\Context.sdf");
Edit:
Wenn ich versuche diese Zeichenfolge: "Data Source=D:\\Context.sdf"
System.Daten.ProviderIncompatibleException war nicht behandelte
Message=Ein Fehler ist aufgetreten, während sich Anbieter von Informationen aus der Datenbank.
Dies kann verursacht werden durch Entity-Framework mit einer falschen Verbindung Zeichenfolge.
Überprüfen Sie die inneren Ausnahmen für details und stellen sicher, dass der connection-string richtig ist.Source=EntityFramework
Und wenn ich versuche zu erwähnen, die Anbieter, wie diesem: "Data Source=D:\\Context.sdf;provider=System.Data.SqlServerCe.4.0"
System.ArgumentException wurde nicht behandelte
Message=Schlüsselwort wird nicht unterstützt: 'provider'.
Source=System.Daten
InformationsquelleAutor der Frage Wonder | 2012-03-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte einen ähnlichen Fehler mit MVC 4 erste code (während der Ausführung von update-Datenbank). Die Fehler, die ich immer war:
Stellt sich heraus, dass ich fehlte einige wichtige Informationen in meiner web.config, um es zu bekommen alle arbeiten mit localDB. Hier die wichtigen Abschnitte (ich habe Referenzmaterial aus http://blogs.msdn.com/b/adonet/archive/2012/01/12/ef-4-3-configuration-file-settings.aspx):
Und für eine gute Maßnahme, hier ist mein ganzes web.config (ich bin mit MVC 4, EF 4.3.1, EF-Migrationen):
InformationsquelleAutor der Antwort ryanjones
Ich schlage vor, Sie verwenden immer die EntityConnectionStringBuilder (System.Daten.EntityClient):
dann generieren Sie die Verbindungszeichenfolge in einer einfachen Art und Weise:
UPDATE:
Versuchen, die EntityConnection, dann übergeben Sie es an den Rahmen anstelle der Verbindung:
Sowieso, wo sind die Metadaten? Es ist erforderlich, durch die EntityConnection!
InformationsquelleAutor der Antwort tanathos
In meinem Fall (genau der gleiche Fehler) es wurde gelöst, indem die Standard-Verbindungs-factory:
Weglassen alle Verweis auf Anbieter in Ihrer Verbindungszeichenfolge, weil es nicht notwendig ist, um (auf diese Weise). Ich glaube, ich habe gelesen, dass standardmäßig die Datenbank.DefaultConnectionFactory eingestellt ist SqlConnectionFactory (), aber ich kann nicht finden, einen Verweis.
InformationsquelleAutor der Antwort Sander
Ich hatte das gleiche problem und es wurde gelöst von:
1 - Einstellung für das Standard-Projekt im manager-Konsole, um das Projekt mit dem gewünschten web.config
2 - Einstellung des Start-Projekts für die Lösung um das gleiche Projekt, um für den update-Befehl, um die Verbindung Zeichenfolge.
InformationsquelleAutor der Antwort Mai