无法识别的配置节的EntityFramework

无法识别的配置节的EntityFramework

本文介绍了测试proejct测试将不会执行:无法识别的配置节的EntityFramework的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我尝试运行我的测试,我得到我的app.config下面的错误我的测试项目:

 结果消息:
试验方法MYTESTPROJ.Repositories.MYREPO.MY_TEST抛出异常:
System.TypeInitializationException:对于System.Data.Entity.Internal.AppConfig'的类型初始值引发了异常。 --->
System.Configuration.ConfigurationErrorsException:配置系统初始化失败--->
System.Configuration.ConfigurationErrorsException:无法识别的配置节的EntityFramework。
(C:\\开发\\干线\\ MYTESTPROJ \\ BIN \\调试\\ MYTESTPROJ.dll.config 20行)
结果堆栈跟踪:
在System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(布尔ignoreLocal)
   在System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors schemaErrors)
   在System.Configuration.BaseConfigurationRecord.ThrowIfInitErrors()
   在System.Configuration.ClientConfigurationSystem.EnsureInit(字符串configKey)
 ---内部异常堆栈跟踪的结尾---
    在System.Configuration.ConfigurationManager。prepareConfigSystem()
   在System.Configuration.ConfigurationManager.GetSection(字符串sectionName)
   在System.Configuration.ConfigurationManager.get_ConnectionStrings()
   在System.Data.Entity.Internal.AppConfig..ctor()
   在System.Data.Entity.Internal.AppConfig..cctor()
 ---内部异常堆栈跟踪的结尾---
    在System.Data.Entity.Internal.AppConfig.get_DefaultInstance()
   在System.Data.Entity.Internal.LazyInternalConnection..ctor(的DbContext背景下,字符串nameOrConnectionString)
   在System.Data.Entity.DbContext..ctor(字符串nameOrConnectionString)

下面是我的app.config:

 <?XML版本=1.0编码=UTF-8&GT?;
<结构>
  <&是connectionStrings GT;
    <添加名称=xxxConnection的connectionString =XXX的providerName =System.Data.EntityClient/>
  < /&是connectionStrings GT;
  <&运行GT;
    < assemblyBinding的xmlns =瓮:架构 - 微软COM:asm.v1>
      < dependentAssembly>
        < assemblyIdentity名称=System.Web.Mvc公钥=31bf3856ad364e35文化=中性/>
        < bindingRedirect oldVersion =0.0.0.0-4.0.0.0NEWVERSION =4.0.0.0/>
      < / dependentAssembly>
    < / assemblyBinding>
  < /运行>
<&System.Data这GT;
    < D​​bProviderFactories>
      <清除NAME =MySQL的数据提供程序不变=MySql.Data.MySqlClient/>
      <添加名称=MySQL的数据提供程序不变=MySql.Data.MySqlClient描述= TYPE =MySql.Data.MySqlClient.MySqlClientFactory,MySql.Data,版本= 6.8.3.0MySQL的净Framework数据提供程序。文化=中性公钥= c5687fc88969c44d/>
    < / DbProviderFactories>
< /system.data>
<&的EntityFramework GT;
    <供应商>
      <供应商invariantName =MySql.Data.MySqlClientTYPE =MySql.Data.MySqlClient.MySqlProviderServices,MySql.Data.Entity.EF6,版本= 6.8.3.0,文化=中性公钥= c5687fc88969c44d>< /提供商GT;
    < /供应商>
  < /&的EntityFramework GT;
< /结构>


解决方案

您只需要在顶部添加configSections区域注册部分(可能需要改变EF版本)。

 <?XML版本=1.0编码=UTF-8&GT?;
<结构>
  < configSections>
    <节名称=的EntityFrameworkTYPE =System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection,的EntityFramework,版本5.0.0.0 =文化=中性公钥= b77a5c561934e089requirePermission =FALSE/>
  < / configSections>
  <&是connectionStrings GT;
    <添加名称=xxxConnection的connectionString =XXX的providerName =System.Data.EntityClient/>
  < /&是connectionStrings GT;
  <&运行GT;
    < assemblyBinding的xmlns =瓮:架构 - 微软COM:asm.v1>
      < dependentAssembly>
        < assemblyIdentity名称=System.Web.Mvc公钥=31bf3856ad364e35文化=中性/>
        < bindingRedirect oldVersion =0.0.0.0-4.0.0.0NEWVERSION =4.0.0.0/>
      < / dependentAssembly>
    < / assemblyBinding>
  < /运行>
<&System.Data这GT;
    < D​​bProviderFactories>
      <清除NAME =MySQL的数据提供程序不变=MySql.Data.MySqlClient/>
      <添加名称=MySQL的数据提供程序不变=MySql.Data.MySqlClient描述= TYPE =MySql.Data.MySqlClient.MySqlClientFactory,MySql.Data,版本= 6.8.3.0MySQL的净Framework数据提供程序。文化=中性公钥= c5687fc88969c44d/>
    < / DbProviderFactories>
< /system.data>
<&的EntityFramework GT;
    <供应商>
      <供应商invariantName =MySql.Data.MySqlClientTYPE =MySql.Data.MySqlClient.MySqlProviderServices,MySql.Data.Entity.EF6,版本= 6.8.3.0,文化=中性公钥= c5687fc88969c44d>< /提供商GT;
    < /供应商>
  < /&的EntityFramework GT;
< /结构>

When I try to run my test I get the following error in my app.config for my test project:

Result Message:
Test method MYTESTPROJ.Repositories.MYREPO.MY_TEST threw exception:
System.TypeInitializationException: The type initializer for 'System.Data.Entity.Internal.AppConfig' threw an exception. --->
System.Configuration.ConfigurationErrorsException: Configuration system failed to initialize --->
System.Configuration.ConfigurationErrorsException: Unrecognized configuration section entityFramework.
(C:\Dev\trunk\MYTESTPROJ\bin\Debug\MYTESTPROJ.dll.config line 20)
Result StackTrace:
at System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal)
   at System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors schemaErrors)
   at System.Configuration.BaseConfigurationRecord.ThrowIfInitErrors()
   at System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey)
 --- End of inner exception stack trace ---
    at System.Configuration.ConfigurationManager.PrepareConfigSystem()
   at System.Configuration.ConfigurationManager.GetSection(String sectionName)
   at System.Configuration.ConfigurationManager.get_ConnectionStrings()
   at System.Data.Entity.Internal.AppConfig..ctor()
   at System.Data.Entity.Internal.AppConfig..cctor()
 --- End of inner exception stack trace ---
    at System.Data.Entity.Internal.AppConfig.get_DefaultInstance()
   at System.Data.Entity.Internal.LazyInternalConnection..ctor(DbContext context, String nameOrConnectionString)
   at System.Data.Entity.DbContext..ctor(String nameOrConnectionString)

Here is my app.config:

    <?xml version="1.0" encoding="utf-8"?>
<configuration>
  <connectionStrings>
    <add name="xxxConnection" connectionString="xxx" providerName="System.Data.EntityClient" />
  </connectionStrings>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
<system.data>
    <DbProviderFactories>
      <remove name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" />
      <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.8.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    </DbProviderFactories>
</system.data>
<entityFramework>
    <providers>
      <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.8.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>
    </providers>
  </entityFramework>
</configuration>
解决方案

You just need to add the configSections area at the top to register the section (you might need to change the EF version).

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <connectionStrings>
    <add name="xxxConnection" connectionString="xxx" providerName="System.Data.EntityClient" />
  </connectionStrings>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
<system.data>
    <DbProviderFactories>
      <remove name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" />
      <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.8.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    </DbProviderFactories>
</system.data>
<entityFramework>
    <providers>
      <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.8.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>
    </providers>
  </entityFramework>
</configuration>

这篇关于测试proejct测试将不会执行:无法识别的配置节的EntityFramework的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-22 20:00