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

Can*_*ğlu 155 entity-framework connection-string

我正在初始化实体框架对象上下文,这给了我关键字不支持错误:

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

Vac*_*ano 311

您收到此错误的真正原因是"您的连接字符串中的值.

如果用单引号替换那些,那么它将正常工作.

http://blogs.msdn.com/b/rickandy/archive/2008/12/09/explicit-connection-string-for-ef.aspx

(发布以便其他人可以比我更快地获得修复.)

  • +1这应该是接受的答案!单引号一路走来! (5认同)
  • 绝对是答案! (2认同)

Sav*_*age 33

我通过改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" />
Run Code Online (Sandbox Code Playgroud)

  • 上述更改可能会导致(在我的情况下)以下错误"在Code First模式中使用上下文,其中包含从EDMX文件生成的用于Database First或Model First开发的代码" (6认同)
  • 为我工作!+1 (2认同)

Cra*_*ntz 13

这似乎是缺少providerName="System.Data.EntityClient"一点.当然你有整件事吗?

  • 好吧,我开始使用`EntityConnectionStringBuilder`类创建它,奇怪的是,它现在正在工作.但我仍然不知道为什么它不接受我的字符串,即使你添加了. (2认同)