实体框架5代码首先到现有的Informix数据库

本文关键字:Informix 数据库 框架 代码 实体 | 更新日期: 2023-09-27 18:03:20

我在使实体框架5与Informix一起工作时遇到了相当多的麻烦。寻求任何我能得到的帮助。我遵循了以下步骤:

    安装客户端SDK(我无法安装clientsdk.3.70)由于与InstallAnywhere安装程序和Windows 8明显不兼容,在同事的建议下,我安装了clientsdk.3.50.FC9)
  1. 通过ODBC验证与数据库的连接
  2. 使用testconn40.exe工具验证连接。
  3. 增加了以下连接字符串:

    <add name="OpenNet"
        connectionString="Database=*****;
          Server=*****:40411;User ID=*****;Password=******;Persist Security
          Info=True;Authentication=Server;" providerName="IBM.Data.Informix"/>
    

当我尝试查询数据库时,我得到一个System.Data.ProviderIncompatibleException,其中包含以下消息:"在类型为'IBM.Data.Informix.IfxFactory'的存储提供程序实例上调用'GetService'方法后返回null。存储提供程序可能无法正常工作。"

我反编译IBM.Data.Informix.IfxFactory,发现如下:

Type type = Type.GetType("IBM.Data.Informix.Entity.IfxProviderServices,  
                 IBM.Data.Informix.Entity, Version=9.7.4.4, 
                 Culture=neutral, PublicKeyToken=7c307b91aa13d208", false);

我找不到IBM.Data.Informix的程序集。实体。也许它包含在后来的clientsdk.3.70中。我可以安装的FC7DE版本。谁能告诉我这是可能的还是我在某个时候走错了路?

实体框架5代码首先到现有的Informix数据库

目前获得IBM数据库服务器实体框架支持的唯一方法是使用IBM DB2实体提供程序。IBM DB2实体提供程序可以连接到DB2和Informix服务器。

IBM DB2实体提供程序是IBM Data Server Driver包的一部分。IBM Informix Client SDK还将IBM Data Server Driver包捆绑为可选安装模块。请使用名称空间IBM.Data。DB2而不是IBM.Data.Informix。

供参考:IBM DB2 Provider使用DRDA协议;因此它不能连接到Informix服务器的本机(SQLI)端口。请在Informix服务器上启用DRDA协议,并在连接中指定该端口号。

您所指向的URL是针对旧版本的,来自相对较新的版本的文档将包含有关原因代码7的更新信息。http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2.luw.messages.sql.doc/doc/msql01159n.html

原因代码7与"注册表项错误"有关。即使这些信息也不能给我提供帮助的线索;但它将为DB2 DS Driver开发团队成员提供线索。我将把这个论坛发帖信息传递给DB2 DS Driver开发团队;这样他们就能帮你解决问题。

很可能错误SQL1159N可以通过重新安装DS驱动程序包来解决,您也可以尝试一下。

这是DB2 . net的常见问题解答URL。http://www.ibm.com/developerworks/wikis/display/DB2/DB2%20and%20.NET%20FAQs