ASP.NET MVC の Entity Framework で Oracle 既存DB 使いたい

まずは準備

ツール -> NuGet パッケージマネージャー -> パッケージマネージャーコンソール
で、ODACをインストールしておく。

PM> Install-Package Oracle.ManagedDataAccess

あとついでに
ツール -> NuGet パッケージマネージャー -> パッケージマネージャー設定 -> パッケージソース
で、以下を追加しておく。

名前 NuGet
ソース https://api.nuget.org/v3/index.json

ここまで終わったら、
ツール -> NuGet パッケージマネージャー -> ソリューションのNuGetパッケージの管理
で、「oracle」で検索して、いかがインスト済みか確認までしておく。

名前 作成者
Oracle.ManagedDataAccess Oracle
Oracle.ManagedDataAccess.EntityFramework Oracle

web.configで接続先の設定、書いておく。

  <oracle.manageddataaccess.client>
    <version number="*">
      <dataSources>
        <dataSource alias="ORCL" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL))) " />
      </dataSources>
    </version>
  </oracle.manageddataaccess.client>
  <connectionStrings>
    <add name="OracleDbContext" providerName="Oracle.ManagedDataAccess.Client" connectionString="User Id=scott;Password=tiger;Data Source=ORCL" />
  </connectionStrings>

そして一応、ソリューションをビルドして、VS再起動しておく。

こんな記事もあるけど、やっぱりOracle Developer Tools for VS2015のインスト、いりそう。
http://stknohg.hatenablog.jp/entry/2014/11/02/173039
結果>
ODT for VS2015 インストしていないとOracleDBに繋がらないみたい。

モデル > 追加 > 新しい項目 で、「ADO.NET Entity Data Model」を選択する。

データベースからEF Designerを選択する。

ん?エラー?とりあえず「新しい接続」ボタンを押す。

データソースとかダメなので、現在使用中のtnsnames.oraをどうこうしてやる。

既存のやつからコピーする。



エラーが出るので、ディレクトリに対して権限を与える。

データソースとかも大丈夫なので、これでテスト接続

成功!

これで進める。

DB内のテーブルとかビューとか見れた!

一旦ここまで。

ASP.NET MVC 、既存DB、開発したい。

スキャフォールディング機能を使ってアプリ開発

CRUD対象となるデータモデルは前回、既存DBから作ったので、準備OKという事で。
コントローラを作るところから始める。
ソリューションエクスプローラーからControllersで右クリックして、追加⇒コントローラー。

Entity Framework を使用した、ビューがある MVC 5 コントローラー を追加ボタン押下して、色々入力する。

モデルクラスには、CRUD対象となるモデルを指定する。
データコンテキストクラスには、対応するコンテキストを指定する。

スキャフォールディングで、勝手にコントローラー内のメソッドに対応したビュースクリプトがView/コントローラー名/配下に作成される。
Index.cshtmlを開いてみると、ここまでビュースクリプトが自動作成されている。

ここで、実行できるかどうかを確認してみる。(Ctrl+Shift+w)


ちゃんと表示された。Visual Studioすげー。
今回はここまで。(これをベースに手を加えていく)