EF DbContext的Linqpad错误:'System.Data.Entity.Internal.AppConfig'的类型初始值设定项引发异常

时间:2013-10-14 07:59:24

标签: mysql .net entity-framework linqpad

我很高兴在Win7机器上运行LinqPad 4.47.02。我试图添加EF5 / dbContext连接。我选择我的程序集,程序集中的类和这样的程序集的配置文件。当我添加连接时,我收到此错误:

The type initializer for 'System.Data.Entity.Internal.AppConfig' threw
an exception.

我的app.config包含:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.data>
    <DbProviderFactories>
      <add name="MySQL Data Provider"
           invariant="MySql.Data.MySqlClient"
           description=".Net Framework Data Provider for MySQL"
           type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data" />
    </DbProviderFactories>
  </system.data>
  <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="FipavContextContainer" connectionString="metadata=res://*/FipavContext.csdl|res://*/FipavContext.ssdl|res://*/FipavContext.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=127.0.0.1;User Id=root;database=fipavmanagerdb&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
  </entityFramework>
</configuration>

我尝试按照建议的here对configfile中的标记进行评论,但我得到了同样的错误。

作为旁注,连接有效,我有很多已保存的linqpad查询。当我尝试加载并运行其中一个时,linqpad崩溃而没有其他信息。

我做错了什么?

谢谢你, F。

(奇怪)解决方案:

我尝试在<configSections>标记之前移动<system.data>标记,错误消失了

1 个答案:

答案 0 :(得分:2)

根据msdn article对于configSections元素:

如果此元素位于配置文件中,则它必须是配置元素的第一个子元素

我认为其中一个原因是这个元素定义了处理程序来处理配置中的自定义部分,所以如果它是第一个你不需要多次读取解析配置来处理以前定义自定义部分的情况此部分的处理程序已定义。