【问题标题】:IBM DB2 Entityframework issueIBM DB2 Entityframework 问题
【发布时间】:2017-04-04 16:57:30
【问题描述】:

如果您知道如何解决此问题,请提供帮助。

VS 2015 已安装 Nuget 包管理器 - EntityFramework 6.1.3 + IBM DB2 EntityFramework 6.0.6 从数据库创建的 EDMX 文件。

出现错误

public partial class dbb1Entities : DbContext
{
    public dbb1Entities()
        : base("name=dbb1Entities"){}
}

错误:

实体框架提供程序类型“IBM.Data.DB2.EntityFramework.DB2ProviderServices, IBM.Data.DB2.EntityFramework, Version=10.5.5.6, Culture=neutral, PublicKeyToken=7c307b91aa13d208” 无法加载在应用程序配置文件中为具有不变名称“IBM.Data.DB2”的 ADO.NET 提供程序注册的。 确保使用程序集限定名称并且程序集可用于正在运行的应用程序。 请参阅http://go.microsoft.com/fwlink/?LinkId=260882 了解更多信息。

Web.config 详细信息

<configSections>    
 <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.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="dbb1Entities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=IBM.Data.DB2;provider connection string=&quot;Database=dbb1;User ID=Dev;Password=AABCDEF;CurrentSchema=bx00001;Server=db2:50000&quot;" providerName="System.Data.EntityClient" />      
</connectionStrings>      
<entityFramework>        
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />       
<providers>          
<provider invariantName="IBM.Data.DB2" type="IBM.Data.DB2.EntityFramework.DB2ProviderServices, IBM.Data.DB2.EntityFramework, Version=10.5.5.6, Culture=neutral, PublicKeyToken=7c307b91aa13d208" />        
</providers>     
</entityFramework>

机器配置详情

<add name="IBM DB2 .NET Data Provider 10.5.0" invariant="IBM.Data.DB2.10.5.0" description="IBM DB2 Data Provider 10.5.0 for .NET Framework 4.0" type="IBM.Data.DB2.DB2Factory, IBM.Data.DB2.10.5.0, Version=10.5.0.4, Culture=neutral, PublicKeyToken=7c307b91aa13d208" />
<add name="IBM DB2 .NET Data Provider 10.5.7" invariant="IBM.Data.DB2.10.5.7" description="IBM DB2 Data Provider 10.5.7 for .NET Framework 4.0" type="IBM.Data.DB2.DB2Factory, IBM.Data.DB2.10.5.7, Version=10.5.7.4, Culture=neutral, PublicKeyToken=7c307b91aa13d208" />
<add name="IBM DB2 .NET Data Provider 11.1.1010" invariant="IBM.Data.DB2.11.1.1010" description="IBM DB2 Data Provider 11.1.1010 for .NET Framework 4.0" type="IBM.Data.DB2.DB2Factory, IBM.Data.DB2.11.1.1010, Version=11.1.1010.4, Culture=neutral, PublicKeyToken=7c307b91aa13d208" />
<add name="IBM DB2 .NET Data Provider" invariant="IBM.Data.DB2" description="IBM DB2 Data Provider for .NET Framework 4.0" type="IBM.Data.DB2.DB2Factory, IBM.Data.DB2, Version=9.7.4.4, Culture=neutral, PublicKeyToken=7c307b91aa13d208" />
<add name="IBM DB2 .NET Data Provider 10.5.6" invariant="IBM.Data.DB2.10.5.6" description="IBM DB2 Data Provider 10.5.6 for .NET Framework 4.0" type="IBM.Data.DB2.DB2Factory, IBM.Data.DB2.10.5.6, Version=10.5.6.4, Culture=neutral, PublicKeyToken=7c307b91aa13d208" />

【问题讨论】:

    标签: visual-studio-2015 db2 entity-framework-6


    【解决方案1】:

    我在使用类似的设置 VS2015、EntityFramework 6.2、EntityFramework.IBM.DB2 6.1 时遇到了完全相同的问题,但我设法解决了这个问题。

    我注意到对 .net 4.6.1 的引用,在将目标框架从 4.5.1 更改为 4.6.1 后,问题解决了!

    发布在适合我的 IBM 应用程序版本/设置下方。

    Machine.config

    <add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
      <add name="IBM DB2 .NET Data Provider" invariant="IBM.Data.DB2" description="IBM DB2 Data Provider for .NET Framework 4.0" type="IBM.Data.DB2.DB2Factory, IBM.Data.DB2, Version=9.7.4.4, Culture=neutral, PublicKeyToken=7c307b91aa13d208" />
      <add name="IBM Informix .NET Data Provider" invariant="IBM.Data.Informix" description="IBM Informix Data Provider for .NET Framework 4.0" type="IBM.Data.Informix.IfxFactory, IBM.Data.Informix, Version=9.7.4.4, Culture=neutral, PublicKeyToken=7c307b91aa13d208" />
      <add name="IBM DB2 .NET Data Provider 10.5.6" invariant="IBM.Data.DB2.10.5.6" description="IBM DB2 Data Provider 10.5.6 for .NET Framework 4.0" type="IBM.Data.DB2.DB2Factory, IBM.Data.DB2.10.5.6, Version=10.5.6.4, Culture=neutral, PublicKeyToken=7c307b91aa13d208" />
      <add name="IBM Informix .NET Data Provider 10.5.6" invariant="IBM.Data.Informix.10.5.6" description="IBM Informix Data Provider 10.5.6 for .NET Framework 4.0" type="IBM.Data.Informix.IfxFactory, IBM.Data.Informix.10.5.6, Version=10.5.6.4, Culture=neutral, PublicKeyToken=7c307b91aa13d208" />
    

    App.config

      <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"/>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
      <provider invariantName="IBM.Data.DB2" type="IBM.Data.DB2.EntityFramework.DB2ProviderServices, IBM.Data.DB2.EntityFramework, Version=10.5.5.6, Culture=neutral, PublicKeyToken=7c307b91aa13d208"/>
    </providers>
    

    已安装的 IBM 应用程序

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-09
      • 2020-09-06
      • 2019-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多