让实体框架5与Informix一起工作时遇到了一些麻烦。寻找我能得到的任何帮助。我按照以下程序:
添加了以下连接字符串:
<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的商店提供程序实例上调用'GetService'方法后返回null .Informix.IfxFactory'。商店提供商可能无法正常运行。“
我解编了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版本中。任何人都可以告诉我这是否可能或者我在某个时候走错了轨道?
答案 0 :(得分:3)
现在,获得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协议,并在连接中指定该端口号。
答案 1 :(得分:1)
您指向的URL适用于旧版本,来自相对较新版本的Doc将具有有关原因代码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