我很难使实体框架5与Informix一起使用。寻找我能得到的任何帮助。我遵循以下过程:
安装了客户端SDK(由于我在同事的建议下安装了clientdk.3.50.FC9,因此与InstallAnywhere安装程序和Windows 8明显不兼容,因此我无法安装clientsdk.3.70.FC7DE)
通过ODBC验证与数据库的连接
使用testconn40.exe工具验证连接。
添加了以下连接字符串:
<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.Entity的程序集。也许它可以包含在以后可以安装的clientdk.3.70.FC7DE版本中。谁能告诉我这是否有可能或者我在某个时候走错了路?
最佳答案
现在,获得对IBM数据库服务器的Entity Framework支持的唯一方法是使用IBM DB2实体提供程序。
IBM DB2实体提供程序可以连接到DB2和Informix服务器。
IBM DB2实体提供程序是IBM数据服务器驱动程序包的一部分。
IBM Informix Client SDK还捆绑了IBM Data Server Driver软件包作为可选安装模块。
请使用名称空间IBM.Data.DB2代替IBM.Data.Informix。
仅供参考:
IBM DB2 Provider使用DRDA协议;因此它无法连接到Informix服务器的本机(SQLI)端口。
请在Informix服务器上启用DRDA协议,并在连接中指定该端口号。
关于c# - Entity Framework 5代码优先于现有Informix数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15317471/