0

次のようにオブジェクト コンテキストを設定します。

public MyObjectContext(....) : this(contextName, new EntityConnection(connectionString))

接続文字列は、Oracle データベースへの接続文字列です。私はDevArtをプロバイダーとして使用しています。

すべて正常に動作します。エンティティなどを取得するために使用できます。

でも、根底にあるつながりで何かをしたかったのです。私は次のようなことをしました:

(OracleConnection)((EntityConnection)context.Connection.StoreConnection)

これにより、次の例外が発生します。

SystemInvalidCastException: [A]Devart.Data.Oracle.OracleConnection cannot be converted to [B]Devart.Data.Oracle.OracleConnection. .... Type A is from C:\Windows\....\6.60.283\.... Type B is from C:\DevDirectory\...\7.2.104.0

ObjectContext が古いバージョンの DLL を使用しているようです。ただし、プロジェクトの参照を確認すると、正しいバージョン 7.2.104.0 への参照が表示されます。さらに調べたところ、クラスが存在するサブプロジェクトに参照がまったくない場合でも、ObjectContext は接続できます。

接続に使用する DLL をどのように解決しますか?

4

1 に答える 1

0

ええ、まだ間違ったバージョン (6) の devArt が (グローバルに) インストールされていることに気付きましたが、プロジェクトでは正しいバージョン (7) を参照していました。ObjectContext を含むアセンブリには参照がなかったため、GAC から古いバージョン (6) を取得する必要がありました。

どうも。明確にするために。

于 2013-01-23T08:03:49.427 に答える