system.data列'invariantname'被约束为唯一

时间:2015-10-23 12:45:04

标签: c# entity-framework firebird

我正在使用FirebirdSqlProvider 4.8.1.1和EntityFramework 6.0 当我尝试使用EntityFramework时,我得到异常system.data column 'invariantname' is constrained to be unique。 我的app.config文件:

<entityFramework>
    <defaultConnectionFactory type="FirebirdSql.Data.EntityFramework6.FbConnectionFactory, EntityFramework.Firebird" />
    <providers>
      <provider invariantName="FirebirdSql.Data.FirebirdClient" type="FirebirdSql.Data.EntityFramework6.FbProviderServices, EntityFramework.Firebird" />
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
</entityFramework>
<system.data>
    <DbProviderFactories>
      <remove invariant="FirebirdSql.Data.FirebirdClient" />
      <add name="FirebirdClient Data Provider" invariant="FirebirdSql.Data.FirebirdClient" description=".NET Framework Data Provider for Firebird" type="FirebirdSql.Data.FirebirdClient.FirebirdClientFactory, FirebirdSql.Data.FirebirdClient" />
    </DbProviderFactories>
</system.data>

我的machine.confgi文件中只有一个DbProviderFactories实体。 怎么解决?

1 个答案:

答案 0 :(得分:5)

对我来说,有一个重复的IBM DB2提供程序。

我必须导航到:

C:\的Windows \ Microsoft.NET \框架\ V2.0.50727 \ CONFIG

然后打开machine.config文件并删除重复的行。

这两行是:

      

  <add name="IBM DB2 for i .NET Provider" invariant="IBM.Data.DB2.iSeries" description=".NET Framework Data Provider for IBM i" type="IBM.Data.DB2.iSeries.iDB2Factory, IBM.Data.DB2.iSeries, Version=12.0.0.0, Culture=neutral, PublicKeyToken=9cdb2ebfb1f93a26"/>