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

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

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

177711 次浏览

这里好像少了 providerName="System.Data.EntityClient"的部分,你确定全部都拍下来了吗?

出现此错误的真正原因是连接字符串中的 "值。

如果你用单引号替换那些,那么它将工作得很好。

Https://learn.microsoft.com/archive/blogs/rickandy/explicit-connection-string-for-ef

(为了让其他人能比我更快地得到修复而发布。)

信不信由你,将 LinqPad.exe.config 重命名为 LinqPad.config 解决了这个问题。

我通过将 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" />

只要用“代替”,就可以解决这个问题。

确保在连接字符串中有 Data Source而不是 DataSource。空间很重要。相信我。我是个白痴。