我正在初始化Entity Framework Object上下文,这给了我不支持的关键字错误:
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"
我直接从正在运行的web.config获取了连接字符串,并仅修改了文件的路径(我动态设置),而不是使用默认值,显式使用了此连接字符串。什么可能导致此错误?
答案 0 :(得分:299)
您收到此错误的真正原因是由于连接字符串中的"
值。
如果用单引号替换那些,那么它将正常工作。
http://blogs.msdn.com/b/rickandy/archive/2008/12/09/explicit-connection-string-for-ef.aspx
(发布以便其他人可以比我更快地获得修复。)
答案 1 :(得分:31)
我通过将EntityClient
更改回SqlClient
来解决此问题,即使我使用的是实体框架。
所以我的完整连接字符串格式为:
<add name="DefaultConnection" connectionString="Data Source=localhost;Initial Catalog=xxx;Persist Security Info=True;User ID=xxx;Password=xxx" providerName="System.Data.SqlClient" />
答案 2 :(得分:13)
这似乎缺少providerName="System.Data.EntityClient"
位。当然你得到了整件事?
答案 3 :(得分:2)
信不信由你,将LinqPad.exe.config重命名为LinqPad.config解决了这个问题。
答案 4 :(得分:0)
只需使用\“代替”,它就可以解决问题。
答案 5 :(得分:0)
确保连接字符串中包含Data Source
而不是DataSource
。空间很重要。相信我。我是个白痴。