Mot-clé non pris en charge: “source de données” initialisation de Entity Framework Contexte
Je suis initialisation de l'Entité Cadre du contexte de l'Objet, et cela me donne le mot-clé non pris en charge d'erreur:
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 du web.config qui fonctionne, et uniquement modifié le chemin d'accès au fichier (qui-je définir dynamiquement), et au lieu d'utiliser la valeur par défaut, utilisé de cette chaîne de connexion de manière explicite. Quelle est la cause de cette erreur?
- Veuillez consulter la stackoverflow.com/questions/6003085/... pour une approche différente
- Je ne sais pas qui est venu avec cette
metadata=res:
, puisres=somethingelse
avec"
tous sur la place de la syntaxe, mais ils doivent être vraiment heureux qu'ils ne sont pas dans la même pièce que moi en ce moment :-/ - 2018 .Net EF de Base similaire erreur de syntaxe - providerName n'était pas nécessaire par une chaîne de connexion SqlClient. Aussi pas de guillemets ou de tiques dans le string pour EF de base.
Vous devez vous connecter pour publier un commentaire.
La vraie raison de vous procurer cette erreur est à cause de la
"
valeurs dans votre chaîne de connexion.Si vous remplacez ceux avec des guillemets simples, alors cela fonctionnera très bien.
http://blogs.msdn.com/b/rickandy/archive/2008/12/09/explicit-connection-string-for-ef.aspx
(Posté afin que d'autres puissent obtenir le correctif plus rapide que j'ai fait.)
"
est une séquence d'échappement pour un guillemet parce que c'est un caractère réservé dans XML.EntityConnectionStringBuilder
classe. Je vous remercie. +1.J'ai résolu ce problème en modifiant
EntityClient
retour àSqlClient
, même si j'ai été en utilisant Entity Framework.Donc ma chaîne de connexion complète a été dans le format:
Cela semble être à côté de la
providerName="System.Data.EntityClient"
peu. Assurez-vous que vous avez obtenu l'ensemble de la chose?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 touche pas trouvé: le nom du fournisseur. J'ai aussi essayé deproviderName=...
au lieu deprovider name=
trop, mais pas de chance.EntityConnectionStringBuilder
classe, et bizarrement, ça fonctionne maintenant. Mais j'ai encore aucune idée de pourquoi elle n'avait pas l'acceptation de ma chaîne, même avec vos ajouts.Le croire ou pas, le changement de nom LinqPad.exe.config pour LinqPad.config de résoudre ce problème.