2

エンティティフレームワーク5をInformixで動作させるのにかなりの問題があります。私が得ることができる助けを探しています。私は次の手順に従いました:

  1. クライアントSDKをインストールしました(clientsdk.3.50.FC9をインストールした同僚の勧めで、InstallAnywhereインストーラーとWindows 8との明らかな非互換性のため、clientsdk.3.70.FC7DEをインストールできませんでした)
  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'メソッドを呼び出した後に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のアセンブリがどこにも見つかりません。おそらく、私がインストールできる後のclientsdk.3.70.FC7DEバージョンに含まれていました。これが可能になるのか、ある時点で間違った道を進んだのか、誰か教えてもらえますか?

4

2 に答える 2

3

現在、IBMデータベースサーバーのEntity Frameworkサポートを取得する唯一の方法は、IBMDB2エンティティプロバイダーを使用することです。IBM DB2エンティティー・プロバイダーは、DB2サーバーとInformixサーバーの両方に接続できます。

IBM DB2エンティティー・プロバイダーは、IBM DataServerDriverパッケージの一部です。IBM Informix Client SDKには、オプションのインストールモジュールとしてIBM DataServerDriverパッケージもバンドルされています。IBM.Data.Informixの代わりに名前空間IBM.Data.DB2を使用してください。

参考:IBMDB2プロバイダーはDRDAプロトコルを使用しています。そのため、Informixサーバーのネイティブ(SQLI)ポートに接続できません。InformixサーバーでDRDAプロトコルを有効にし、接続でそのポート番号を指定してください。

于 2013-03-11T17:25:32.237 に答える
1

あなたが指摘したURLは古いリリースのものであり、比較的新しいリリースのDocは、理由コード7に関する情報を更新します 。http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm .db2.luw.messages.sql.doc / doc / msql01159n.html

このエラーの理由コード7は、「レジストリキーエラー」に関連しています。その情報でさえ、私があなたに助けを与えるための多くの手がかりを与えてくれません。しかし、それはDB2DSドライバー開発チームのメンバーに手がかりを与えます。このフォーラムの投稿情報をDB2DSドライバー開発チームに渡します。彼らはあなたが問題を解決するのを助けることができるように。

ほとんどの場合、エラーSQL1159Nは、DSドライバーパッケージを再インストールすることで解決されます。それも試してみてください。

これがDB2.NETのFAQURLです。 http://www.ibm.com/developerworks/wikis/display/DB2/DB2%20and%20.NET%20FAQs

于 2013-03-12T04:54:06.227 に答える