2013-03-10 114 views
2

我在获取实体框架5以使用Informix时遇到了相当多的麻烦。寻找任何我能得到的帮助。我跟着下面的步骤:实体框架5代码首先到现有的Informix数据库

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

    <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'方法。商店提供者可能无法正确运行。“

我去编译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.Entity任何地方。也许它包含在我可以安装的更高版本的clientsdk.3.70.FC7DE版本中。任何人都可以告诉我这是否可能,或者如果我在某个时候走错了路?

回答

3

现在,通过使用IBM DB2实体提供程序来获得IBM数据库服务器的实体框架支持的唯一方法。 IBM DB2实体提供者可以连接到DB2和Informix服务器。

IBM DB2实体提供程序是IBM数据服务器驱动程序包的一部分。 IBM Informix Client SDK还将IBM Data Server Driver软件包作为可选安装模块捆绑在一起。 请使用名称空间IBM.Data.DB2而不是IBM.Data.Informix。

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

+0

当我切换到DB2提供程序时,出现原因码为7的SQL1159N错误,并且没有附加信息。 http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com.ibm.db2.udb.msg.doc/doc/sql1159.htm仅列出了6个原因代码。这是否表明DRDA未安装在服务器上? – sanbornc 2013-03-11 18:51:54

+0

也许我需要改变连接字符串,而不仅仅是指定一个新的提供者? – sanbornc 2013-03-11 20:35:22

1

你所指出的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的FAQ URL。 http://www.ibm.com/developerworks/wikis/display/DB2/DB2%20and%20.NET%20FAQs

相关问题