Ich initialisiere den Entity Framework-Objektkontext, und dies gibt mir den Schlüsselwort nicht unterstützten Fehler:
metadata=res://*/MainDB.csdl|res://*/MainDB.ssdl|res://*/MainDB.msl;provider=System.Data.SqlClient;provider connection string="Data Source=.\SQLEXPRESS;AttachDbFilename=D:\Workspace\vs\Leftouch\Leftouch.Web\Data\Leftouch.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;App=EntityFramework"
Ich habe die Verbindungszeichenfolge direkt aus der funktionierenden Datei web.config übernommen und nur den Pfad zur Datei geändert (den ich dynamisch festgelegt habe). Statt den Standardwert zu verwenden, habe ich diese Verbindungszeichenfolge explizit verwendet. Was könnte diesen Fehler verursachen?
entity-framework
connection-string
Kann Poyrazoğlu
quelle
quelle
metadata=res:
, dannres=somethingelse
mit"
der Syntax von überall - aber sie sollten wirklich froh sein, dass sie sich gerade nicht im selben Raum wie ich befinden: - /Antworten:
Der wahre Grund, warum Sie diesen Fehler erhalten haben, sind die
"
Werte in Ihrer Verbindungszeichenfolge.Wenn Sie diese durch einfache Anführungszeichen ersetzen, funktioniert dies einwandfrei.
https://docs.microsoft.com/archive/blogs/rickandy/explicit-connection-string-for-ef
(Gepostet, damit andere das Problem schneller beheben können als ich.)
quelle
"
ist eine Escape-Sequenz für ein Anführungszeichen, da es sich um ein reserviertes Zeichen in XML handelt.Ich habe dies behoben, indem ich
EntityClient
zurück zu gewechselt habeSqlClient
, obwohl ich Entity Framework verwendet habe.Meine vollständige Verbindungszeichenfolge hatte also das folgende Format:
quelle
Dies scheint das
providerName="System.Data.EntityClient"
Bit zu fehlen . Sicher hast du das Ganze?quelle
metadata=res://*/MainDB.csdl|res://*/MainDB.ssdl|res://*/MainDB.msl;provider=System.Data.SqlClient;provider name=System.Data.EntityClient;provider connection string="{0};App=EntityFramework"
und es heißt jetzt Schlüssel nicht gefunden: Anbietername. Ich habe auch versucht ,providerName=...
stattprovider name=
auch, aber kein Glück.EntityConnectionStringBuilder
Klasse zu erstellen , und seltsamerweise funktioniert es jetzt. Aber ich habe immer noch keine Ahnung, warum es meine Zeichenfolge nicht akzeptiert hat, selbst mit Ihren Ergänzungen.Ob Sie es glauben oder nicht, das Umbenennen von LinqPad.exe.config in LinqPad.config hat dieses Problem gelöst.
quelle
Verwenden Sie stattdessen "stattdessen", um das Problem zu beheben.
quelle
Stellen Sie sicher, dass Sie
Data Source
und nichtDataSource
in Ihrer Verbindungszeichenfolge. Der Raum ist wichtig. Vertrau mir. Ich bin ein Idiot.quelle