当前位置: 首页 > 知识库问答 >
问题:

DB2 I Series数据库IBM实体框架提供程序错误

堵睿范
2023-03-14

好的,这是我的问题,我想使用实体框架和DB2 for I系列数据库,以数据库的第一种方式,但是要获得成功的连接真的很复杂。

首先,我试图使用“IBMDB2和IDS服务器”数据源创建一个实体数据模型,但是尽管我创建了一个与LUW DB2的成功连接,但我还不能使用DB2 for I系列来实现它尝试端口446它说有一个许可证问题,9471产生了一个连接错误,8471保持等待和50000没有成功,我甚至尝试使用没有端口,但它不工作。

所以我选择使用IBMDB2fori数据源,这个选项允许我连接,但是当我尝试使用EntityFramework6.1时。我告诉我EF 6时出错了。x与此版本不兼容。

因此,我将EF降级为5.0版,以尝试以任何方式创建实体模型,然后升级EF版本,但是,当我在选择EF 5.0后单击“下一步”时,实体数据模型向导在显示数据库对象和设置之前消失,并且无法创建模型。

然后我决定我不需要edmx文件,我可以在连接正常的情况下手动进行映射,因此我开始创建类来进行映射:

AppContext:

public class AppContext: DbContext
{
    public AppContext() : base( "connectionString" )
    {
    }

    public DbSet<Data> Datas { get; set; }
}

数据:[表(“数据”)]公共类数据{[列(“id”)]公共int-id{get;set;}

    [Column("name")]
    public string Name { get; set; }
}    

最后是测试:

public class Program
{
    static void Main(string[] args)
    {

        using (var ctx = new AppContext())
        {
            Data data = new Data() { Id = 1, Name = "A Name" };

            ctx.Datas.Add(data);
            ctx.SaveChanges();                
        }
    }
}

我安装了实体框架。IBM. DB2 nuget版本6.0.7和改变我的Web.config添加连接字符串,我发现有一个新的提供商名为"IBM. Data.DB2”并测试了连接,但我开始遇到与第一个连接相同的问题,不同的端口。

因此,我认为此提供程序必须是第一个连接的提供程序,我需要I series son的提供程序。我将提供程序更改为“IBM.Data.DB2.iSeries”,并尝试再次更改连接字符串中的一些参数,但现在我遇到以下错误:

实体框架提供程序类型“IBM”的“实例”成员。数据DB2。伊塞里斯。IDB2工厂,IBM。数据DB2。iSeries,版本=12.0。0.0,区域性=中性,PublicKeyToken=9cdb2ebfb1f93a26'未html" target="_blank">返回从'System'继承的对象。数据实体果心常见的DbProviderServices’。实体框架提供程序必须从此类继承,“实例”成员必须返回提供程序的单实例。这可能是因为提供者不支持实体框架6或更高版本;看见http://go.microsoft.com/fwlink/?LinkId=260882了解更多信息。

这里是我的网络连接字符串和提供者。配置:

<connectionStrings>
    <add name="DB2Connection" providerName="IBM.Data.DB2" connectionString="DataSource=192.168.1.54;UserID=XXXX;DefaultCollection=XXXX;Database=DB10000010; Password=XXXXXX;" />
    <add name="connectionString" providerName="IBM.Data.DB2.iSeries" connectionString="Server=192.168.1.54;UserID=XXXXX;Database=DB100000010; Password=XXXXX;" />
</connectionStrings>

<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" />
    <provider invariantName="IBM.Data.DB2.iSeries" type="IBM.Data.DB2.iSeries.iDB2Factory, IBM.Data.DB2.iSeries, Version=12.0.0.0, Culture=neutral, PublicKeyToken=9cdb2ebfb1f93a26" />
</providers>

我还发现了一个新的ibmiaccess,它应该取代旧的ibmdb2i系列for windows提供程序,但找不到与之配套的数据源

好了,我已经没有什么想法了,有人能帮我将实体框架与IBMDB2fori系列结合使用吗?

谢啦

共有1个答案

孟璞
2023-03-14

要与DB2 iSeries连接,必须使用端口446进行连接。有一个许可证问题。您必须联系IBM以获得许可证:

ADM12008C产品“IBM Data Server驱动程序包”未安装有效的许可证密钥,评估期已过。未启用特定于此产品的功能。如果您已授权此产品,请确保正确安装了许可证密钥。可以使用db2licm命令安装许可证。许可证文件可以从您的许可产品CD中获得。

有关详细信息,请单击此链接:

https://www.ibm.com/developerworks/community/forums/html/topic?id=9a107d00-d814-440c-b438-FAA4D0AE1A

 类似资料:
  • 错误消息: System.InvalidOperationException:未找到具有固定名称“System.Data.SqlClient”得ADO.NET提供程序得实体框架提供程序.确保在应用程序配置文件的“Entity Framework”部分中注册了提供程序。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=260882。

  • 我试图连接我的实体框架在MySQL数据库,但当我连接这个错误发生 找不到具有固定名称“mysql.data.mysqlclient”得ADO.NET提供程序得实体框架提供程序.确保在应用程序配置文件的“Entity Framework”部分中注册了提供程序。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=260882。 这是我的类库whit实体的a

  • 问题内容: 我正在尝试将Entity Framework与MySQL配合使用,但出现上述错误。我安装了最新的MySQL连接器。 完整错误为: 但是,我找不到任何建议说明您如何在“ entityFramework”部分中进行注册的内容。 其他一些帖子(例如)建议将提供程序添加到该 部分中,如下所示: 但这不起作用,因为它声称名称是重复的。而且,如果我实际上遍历了,我可以看到最后一个是MySQL提供程

  • 我有一个与问题“找不到具有固定名称”System.Data.SqlClient“的ADO.NET提供程序的实体框架提供程序”中提供的问题类似的问题,错误包含以下消息: “具有固定名称”System.Data.SqlClient“的ADO.NET提供程序未在计算机或应用程序配置文件中注册,或者无法加载。有关详细信息,请参阅内部异常。” 正如相关问题的答案所提示的,我已经通过包管理器控制台重新安装了实

  • 该数据库提供程序允许 Entity Framework Core 被用于访问 IBM Data Server。它由 IBM 维护。 注意 该提供程序没有作为 Entity Framework Core 项目的一部分来维护。当考虑第三方提供程序的时候,一定要评估其质量、许可、支持情况等等以确保它们符合你的需求。 安装 在 Windows 上使用 IBM Data Server 的话要安装 IBM.E

  • 我最近升级/更新了一个旧项目中的实体框架,从版本4或5到版本6。现在我得到了这个例外: EntityFramework.dll中出现“System.InvalidOperationException”类型的异常,但未在用户代码中处理 其他信息:未找到具有固定名称“System.Data.SqlClient”得ADO.NET提供程序得实体框架提供程序.确保在应用程序配置文件的“Entity Fram

  • 在nuget下载EF6并尝试运行我的项目后,它返回以下错误: 找不到具有固定名称“System.Data.SqlClient”得ADO.NET提供程序得实体框架提供程序.确保在应用程序配置文件的“Entity Framework”部分中注册了提供程序。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=260882。

  • 我目前正在使用EF:EntityFramework.AzureTableStorage7.0.0-beta1访问Azure存储表。 配置模型时,我已将 TableEntity 的时间戳属性映射到模型的属性: 在插入新实体时,每件事听起来都不错,我可以使用LastModization检索新创建的实体,但是如果我实例化了第二个DbContext,则无法检索我的实体: 异常详细信息: Microsoft