2013-03-10 117 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

相關問題