J'initialise le contexte de l'objet Entity Framework, et cela me donne l'erreur de mot clé non pris en charge:
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"
J'ai pris la chaîne de connexion directement à partir de web.config qui fonctionnait et je n'ai modifié que le chemin d'accès au fichier (que j'ai défini dynamiquement), et au lieu d'utiliser la valeur par défaut, j'ai utilisé cette chaîne de connexion explicitement. Qu'est-ce qui pourrait causer cette erreur?
entity-framework
connection-string
Can Poyrazoğlu
la source
la source
metadata=res:
, alorsres=somethingelse
avec"
une syntaxe partout - mais ils devraient être vraiment heureux de ne pas être dans la même pièce que moi en ce moment: - /Réponses:
La vraie raison pour laquelle vous obtenez cette erreur est à cause des
"
valeurs de votre chaîne de connexion.Si vous les remplacez par des guillemets simples, cela fonctionnera très bien.
https://docs.microsoft.com/archive/blogs/rickandy/explicit-connection-string-for-ef
(Publié pour que les autres puissent obtenir le correctif plus rapidement que moi.)
la source
"
est une séquence d'échappement pour un guillemet car il s'agit d'un caractère réservé dans XML.J'ai résolu ce problème en
EntityClient
revenant àSqlClient
, même si j'utilisais Entity Framework.Ma chaîne de connexion complète était donc au format:
la source
Cela semble manquer le
providerName="System.Data.EntityClient"
bit. Vous avez tout compris?la source
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"
et il dit maintenant clé non trouvée: nom du fournisseur. J'ai aussi essayéproviderName=...
au lieu deprovider name=
trop, mais pas de chance.EntityConnectionStringBuilder
classe, et bizarrement, cela fonctionne maintenant. Mais je ne sais toujours pas pourquoi il n'acceptait pas ma chaîne, même avec vos ajouts.Croyez-le ou non, renommer LinqPad.exe.config en LinqPad.config a résolu ce problème.
la source
Utilisez simplement \ "à la place", cela devrait résoudre le problème.
la source
Assurez-vous que vous avez
Data Source
et nonDataSource
dans votre chaîne de connexion. L'espace est important. Croyez-moi. Je suis un idiot.la source