.netでOracleを使用する一連のアプリケーション用のデータアクセスライブラリを作成しようとしています。現在NHibernateを使用しており、十分にサポートされていないように見えるため、移行を検討しています。
私はVisualStudio 2013を使用しており、すでにOracleデータベースを構築しています。それを更新するための書き込みはありません(つまり、db guysのドメインです)。したがって、それは私たちの側の計算の一部にはなりません。
サーバー上のクライアントは32ビットであるため、ここではそれを使用します。すでにGACされており、変更する必要はありません。したがって、開発ボックスには32ビットクライアントがあります。
EntityFramework6.1.0をnuget経由でプロジェクトにインストールしています。プロジェクトにODAC1.112.3.20がインストールされています。アプリケーションの32ビットバージョン。また、ODP.net.x86ドライバーをインストールしています(これもnuget経由)。
問題は、ADO.netデータベース接続を作成しようとするたびに、Oracleプロバイダーがオプションにならないことです。何が足りないのですか?これを機能させるには何が必要ですか?
Oracleフォーラムを一度読んだところ、EntityFrameworkを6.0ではなく5.0に設定する必要があるとのことでした。どちらでも構いませんが、どうすればよいですか?
EF 6のサポートは、ODAC12cリリース3ベータによって提供されるようになりました。
.Net Developerニュースレター(私の強調)から:
新しいダウンロード:ODAC 12cリリース3ベータ新しいODACベータには、Entity Framework 6、Code First、Code First Migrations、.NET Framework 4.5.2認定、マネージドODP.NET XML DB、マネージドODPが含まれます。 Oracle.ManagedDataAccessDTC.dllを使用しないNET分散トランザクションのサポート。
これは少し古くなっていることは知っていますが、これはあなたの質問の最後の部分(EFv5のインストール方法)に答えるためのものです。 (VisualStudio 2013用に作成された手順)ソリューションを開いた状態で、[ツール]-> [NuGetパッケージマネージャー]-> [パッケージマネージャーコンソール]をクリックします。次のように入力します:
_Install-Package EntityFramework -Version 5.0.0
_
マシンをセットアップしてからしばらく経ちましたが、これが私がしなければならなかったことだと思います。それがお役に立てば幸いです。
ああ、私はそれが重要かどうかわからない、一つのことを忘れました。そのモデルプロジェクトの参照をOracleドライバに追加する必要がある場合があります。プロジェクトを右クリック->追加->参照->アセンブリ->「Oracle」を検索します。Oracle.ManagedDataAccessのエントリがあるといいのですが(私のバージョンは4.121.1.0でした)
NUMBER(10)
型のフィールドがある場合、10桁の数値がすべて収まらない場合は、32ビット整数としてマップされます:(EF6はODP.NETではまだサポートされていません。詳細については、リリースノート(README)を参照してください。 EF6はまもなくサポートされます。
編集:EF6がサポートされるようになりました。
申し訳ありませんが、質問の一部を見逃しました。
Visual Studio 2013を使用している場合は、Oracle Developer Tools for VisualStudioバージョン12.1.0.1.2以降をダウンロードする必要があります。古いバージョンでは、VS2013と統合できません。
ダウンロード場所は次のとおりです。 http://www.Oracle.com/technetwork/topics/dotnet/utilsoft-086879.html
EF 6.0はまだサポートされていませんが、VS 2013ではEF5プロバイダーを使用できます。したがって、他の回答は実際には関係ありません。
Entity Framework6コードファースト
ODAC 12c R3は、Entity Framework(EF)6およびEF CodeFirstで認定された最初のODP.NETリリースです。 EF Code Firstは、.NETオブジェクトリレーショナルマッピングの一般的な開発モデルです。開発者は、デザイナやXMLベースの構成ファイルではなく、ソースコードを使用してアプリケーションドメインモデルを定義します。 EF Code Firstモデルのクラスは、Plain Old CLR Objects(POCO)を介してコードで定義されます。
.。
これらの機能はすべて、マネージドとアンマネージドの両方のODP.NETで使用できます。
http://cshay.blogspot.com/2014/09/odac-12c-release-3-beta-now-available.html