不支持关键字:“数据源”初始化实体框架上下文

时间:2011-08-09 13:38:20

标签: entity-framework connection-string

我正在初始化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获取了连接字符串,并仅修改了文件的路径(我动态设置),而不是使用默认值,显式使用了此连接字符串。什么可能导致此错误?

6 个答案:

答案 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。空间很重要。相信我。我是个白痴。