Oracle DBでEF Coreを使う(既存テーブルをスキャフォルディングする)

今回は、.NET6のコンソールアプリケーションでサンプルアプリケーションを作成していきます。

まずは、普通にVS2022で.NET6のコンソールアプリのテンプレートでプロジェクトを作成します。

f:id:tomo_k:20220313074533p:plain

 

次に、NugetでOracle.EntityFrameworkCoreとMicrosoft.EntityFrameworkCore.Designパッケージをインストールします。

 

f:id:tomo_k:20220313074918p:plain

f:id:tomo_k:20220313080033p:plain



次に、パッケージマネージャコンソールで既存テーブルのスキャフォールディングを行います。

 

Scaffold-DbContext "データベースへの接続文字列" Oracle.EntityFrameworkCore

 

データベースへの接続文字列は従来Oracleへの接続文字列として使用していた形式が記述可能です。

オプションなどについては下記を参照してください。

docs.microsoft.com

2度目以降のスキャフォールディングは既存のファイルを上書きする必要があるので-Forceオプションをつけるとよいでしょう。

f:id:tomo_k:20220313080349p:plain

 

あとは、できたモデルをインスタンス化してあげればDBアクセスができます。

 

f:id:tomo_k:20220313082707p:plain



 

以下実行結果

f:id:tomo_k:20220313081318p:plain

 

考慮事項

 

生成されたデフォルトでは「ModelContext.cs」に接続文字列が直書きされているのでこれを適切な取り扱いをする