实体框架错误关键字不支持:提供程序\r\n连接字符串

Posted

技术标签:

【中文标题】实体框架错误关键字不支持:提供程序\\r\\n连接字符串【英文标题】:Entity Framework error Keyword not supported: provider \r\nconnection string实体框架错误关键字不支持:提供程序\r\n连接字符串 【发布时间】:2016-12-03 18:55:27 【问题描述】:

我使用实体框架制作了MVC API。它在我的 PC 上作为 Visual Studio 上的本地主机运行良好 当我发布它并在 myasp.net 上托管 api 和数据库以对其进行测试并替换此连接字符串时:

<add name="ENGeekEntities" connectionString="metadata=res://*/Models.operation.csdl|res://*/Models.operation.ssdl|res://*/Models.operation.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.\SQLEXPRESS;initial catalog=ENGeek;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

与站点连接字符串:

<add name="ENGeekEntities" connectionString="metadata=res://*/Models.operation.csdl|res://*/Models.operation.ssdl|res://*/Models.operation.msl;provider=System.Data.SqlClient;provider 
connection string=&quot;Data Source=SQL5025.myASP.NET;Initial Catalog=DB_A0A604_ENGeek;User Id=DB_A0A604_ENGeek_admin;Password=MyPassword;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

当我尝试获取数据时,它给了我这个错误:

"Message":"发生错误。","ExceptionMessage":"Keyword not supported: 'provider \r\nconnection string'"

任何想法!

【问题讨论】:

编辑您的问题并添加内部异常 我应该怎么做才能得到内部异常 点击查看详情->发生错误或异常时的Innerexception 我用另一种方式管理它它给出:消息":"发生错误。","ExceptionMessage":"不支持关键字:'提供者\r\n连接字符串 【参考方案1】:

解决了。 有两个问题。 第一个问题是序列化 IEmunerable,我用 javascriptSerializer 替换了它。 第二个通过添加单引号来解决就像提到的

【讨论】:

【参考方案2】:

由于连接字符串中的&amp;quot;,您收到此错误的原因。 将&amp;quot; 替换为单引号',如下所示。

<add name="ENGeekEntities" connectionString="metadata=res://*/Models.operation.csdl|res://*/Models.operation.ssdl|res://*/Models.operation.msl;provider=System.Data.SqlClient;provider 
connection string='Data Source=SQL5025.myASP.NET;Initial Catalog=DB_A0A604_ENGeek;User Id=DB_A0A604_ENGeek_admin;Password=MyPassword;App=EntityFramework'" providerName="System.Data.EntityClient" />

【讨论】:

&amp;quot; 有问题吗!! 如果您将connection string 传递给类对象,请确保它有单引号,并且如果您从.config 文件获取连接,那么可以使用&amp;quot; 转义序列。 @RahulNikate 我不相信应该有任何区别,任何支持这一点的链接。我很好奇,我从来不知道 @ShekharPankaj Here's the reference for it

以上是关于实体框架错误关键字不支持:提供程序\r\n连接字符串的主要内容,如果未能解决你的问题,请参考以下文章

连接字符串 - 不支持关键字:'初始目录'

实体框架代码的动态连接字符串首先在运行时 EF6(mssql、mysql、oracle)中用于多个数据库提供程序

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

实体框架“找不到查询模式的实现”

无法让实体框架连接

提供者未返回 ProviderManifestToken 字符串实体框架