質問: 私は現在、Entity Framework 6内の既存のOracle 12データベースからテーブルからコードを生成しようとしています。問題は、環境にログインするときに自分が所有しているスキーマを表示できる一方で、私がアクセスできる他のスキーマは見えているようです。 別のスキーマが見えるように変更するにはどうすればいいですか? 私はEntity Frameworkモデルを最初に使用し、コードファーストを使用しました。私はOracleで自分が所有している生成テーブルのスキーマを手動で変更することができますが、それは動作しますが、それは自分のスキーマ内の他のスキーマから独自のバージョンのテーブルを生成して、フレームワーク。 既存のすべてのテーブルからすべてのコードを生成することは、別の方法では面倒な作業になります。 この問題をどうやって解決するのですか?
回答: さて、私は問題を解決しました。 Entity FrameworkでOracleと連携するスキーマを取得する方法があります。必要に応じてDesigner / Canvasを含むEntity Frameworkをフルに活用できます。 まず、アプリケーションでNugetを使用して、Oracle.ManagedDataAccess.EntityFrameworkパッケージをインストールします。 Nugetでこのパッケージの説明を見ると、EntityFrameworkとOracle.ManagedDataAccessに依存しているという。 1つのパッケージをインストールすれば、それがあればすべてインストールされます。 次に、その説明の最後にあるコメントを読んでください。「注:Entity Frameworkの設計時には、 から32ビット版のOracle Developer Tools for Visual Studioをダウンロードする必要がありますNuGetのダウンロードではデザイン時のツールは使用できず、ランタイムサポートのみが有効になります。 したがって、ご使用の環境に合ったOracle Tools for Visual Studioをインストールする必要があります。 ODTwithODACパッケージをインストールしても、適切な結果は得られません。 最後に、Oracleデータベースへの接続を追加します。次に、サーバーエクスプローラを開き、その接続を探します。接続を右クリックし、[フィルタ]を選択します。次に、「表示されるスキーマ」を選択します。値を編集し、表示するすべてのスキーマを追加します。「...」ボタンをクリックしてスキーマを選択します。次に[更新]をクリックします。次に[OK]をクリックします。 次回、追加したばかりのスキーマからオブジェクトを選択する場合は、そのオブジェクトがEntity Frameworkリストに表示されます。