4

DevArtのプロバイダーを使用して、Oracleデータベースに対してEntityFramework4.3をセットアップしました。NUnit 2.6テストランナーのユニットテストプロジェクトを介して、データベースへの接続に問題があります。面白いのは、ASP.NETMVC3プロジェクトが問題なく接続されていることです。クラスライブラリの単体テストプロジェクトでApp.configを作成し、エンティティ接続文字列情報をコピーしました。私は何が欠けていますか?

エンティティ接続情報は次のとおりです(Web.configとApp.configで同じ)。

  <connectionStrings>
    <add name="Entities" connectionString="metadata=res://*/Entities.MagellanDataModel.csdl|res://*/Entities.MagellanDataModel.ssdl|res://*/Entities.MagellanDataModel.msl;provider=Devart.Data.Oracle;provider connection string=&quot;User Id=theusername;Password=thepassword;Server=theTNSname&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>

例外情報は次のとおりです。

AppName.Tests.AccountRepositoryTests.GetByContactId:
System.Data.EntityException : The underlying provider failed on Open.
----> System.InvalidOperationException : Can not obtain Oracle client information
      from registry. Make sure that Oracle Client Software is installed, or use 
      Direct mode of connecting to server.

注:Webと単体テストアセンブリの両方がにコンパイルされるように設定されていますAny CPU。私は64ビットのWindows7で32ビットのOracle10gデータベースを実行しています。投稿はx86である必要があるプラットフォームに関連しているようですが、私のWebプロジェクトはに設定されてAny CPUおり、正常に動作しています。

4

2 に答える 2

3

同様の問題がありました.32ビットOracleを使用したWin7 64ビットDevArt。

Web プロジェクトではうまく機能しAny CPUますが、コンソールおよび単体テスト プロジェクトでは失敗します。モードでテストとコンソールprojsを設定することで修正しました(または回避しました)x86Debug

于 2012-04-28T12:16:41.167 に答える
0

同じ問題がありました。私にとって、この問題は、[プロジェクト プロパティ] -> [ビルド] -> [プラットフォーム ターゲット] の下の [32 ビットを優先] チェック ボックスをオフにすることで解決されます。プラットフォーム ターゲットが「任意の CPU」に設定されていました。

于 2014-11-04T21:02:11.290 に答える