c# - Entity Framework : Unrecognized element 'providers' exception

标签 c# .net entity-framework entity-framework-4

当我将 Entity Framework 5.0.0 与 .NET 4.0 一起使用时,我在运行时遇到了一个Unrecognized element 'providers' 异常。实际上,对于 .NET 4.0,当我使用 NuGet 执行安装包时,加载的是 Entity Framework 4.4.0 版。当我从资源管理器检查文件的属性时,我可以看到:

enter image description here

这是我的配置文件

 <configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --></configSections>
  <connectionStrings>
    <add name="xxx" connectionString="metadata=res://*/StreetMusicModel.csdl|res://*/StreetMusicModel.ssdl|res://*/StreetMusicModel.msl;         provider=MySql.Data.MySqlClient;provider connection string='         server=xxx.net;         user id=xxx;         password=xxx;         database=xxx'" providerName="System.Data.EntityClient" />
  </connectionStrings>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="v12.0" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity" />
    </providers>
  </entityFramework>

我感觉 Entity Framework 4.4.0 无法识别标签。我可以只删除或重命名该部分吗?当我删除该部分时,我得到另一个异常:底层提供程序打开失败

最佳答案

我在使用 Nuget 将 EF 从版本 6 降级到版本 5.0.0 后遇到了这个问题。我认为问题是在添加 EF v6 时添加了提供程序配置,但在降级后没有删除。因此,您可以简单地删除 <providers> 中的内容。标签和标签本身,它将正常工作:

<entityFramework>
  <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
    <parameters>
      <parameter value="v12.0" />
    </parameters>
  </defaultConnectionFactory>
</entityFramework>

关于c# - Entity Framework : Unrecognized element 'providers' exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25859153/

相关文章:

.net - 控制应用程序的音量 : By Process-ID

sql - 为什么 LINQ to Entities 为我创建子查询?

sql-server - 使用 linq 查询 SQL Server 导致数百个小查询

C# - 获取引用的引用

c# - 将 SQL 查询转换为 LINQ - 不工作

.net - 在 JSON.NET 中编码变音

sql-server - 从 SQL Server 表中获取随机行数

c# - ASP.NET MVC Core 身份页面中的路由本地化

c# - 使用 ASP.NET 5 中的 cookie 身份验证重定向到使用属性授权的登录

.net - 就像 Entity Framework 中的运算符一样?