Estoy inicializando el contexto del objeto Entity Framework, y esto me da el error de palabra clave no compatible:
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"
Tomé la cadena de conexión directamente de web.config que estaba funcionando, y modifiqué solo la ruta al archivo (que configuré dinámicamente), y en lugar de usar el valor predeterminado, usé esta cadena de conexión explícitamente. ¿Qué podría causar este error?
entity-framework
connection-string
Can Poyrazoğlu
fuente
fuente
metadata=res:
, entoncesres=somethingelse
con"
toda la sintaxis del lugar, pero deberían estar muy contentos de no estar en la misma habitación que yo en este momento: - /Respuestas:
La verdadera razón por la que recibiste este error es por los
"
valores en tu cadena de conexión.Si los reemplaza con comillas simples, funcionará bien.
https://docs.microsoft.com/archive/blogs/rickandy/explicit-connection-string-for-ef
(Publicado para que otros puedan obtener la solución más rápido que yo).
fuente
"
es una secuencia de escape para una comilla porque es un carácter reservado en XML.Lo arreglé cambiando de
EntityClient
nuevo aSqlClient
, aunque estaba usando Entity Framework.Entonces mi cadena de conexión completa estaba en el formato:
fuente
Parece que le falta el
providerName="System.Data.EntityClient"
bit. ¿Seguro que tienes todo?fuente
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"
y ahora dice clave no encontrada: nombre del proveedor. También lo intenté enproviderName=...
lugar deprovider name=
también, pero no tuve suerte.EntityConnectionStringBuilder
clase, y extrañamente, está funcionando ahora. Pero todavía no tengo idea de por qué no estaba aceptando mi cadena, incluso con sus adiciones.Lo creas o no, renombrar LinqPad.exe.config a LinqPad.config resolvió este problema.
fuente
Simplemente use \ "en su lugar", debería resolver el problema.
fuente
Asegúrese de tener
Data Source
y noDataSource
en su cadena de conexión. El espacio es importante. Créeme. Soy un idiota.fuente