Entity Framework Core 8を使う
C#でEfCore 8を使ってみます。SQL大好きなので、SQLを自動生成してしまうこの O/Rマッピングは慣れないのですが、Microsoftさんはもうこっちで走る気らしいので、遅ればせながらやってみました。
EFCoreはインストール済み
Entity Frameworkのことを EFと略します。でCoreは最新版であり、簡略版です。Visual Studioインストール済みならばすでにインストール済みだと思います
去年あたりから、必要性に駆られてやろうとしていたのですが、よくわからず。しかもやってるうちにどんどん破壊的バージョンアップを繰り返すので、少し離れていました。
Oracleまでまとめたところで、Microsoft LearnのEntity Framework Coreをそのままやってみようとやった記録です。なのでMicrosoftを読んだ方が正確です。で、MicrosoftのサンプルはSQLiteなのでそこだけSQL serverに変えました
2023年11月以降は、.net8になっていると思います。バージョンのチェックは
で、確認できます。入っていなければupdateを受けてください。
C#のEFCore8で初めて接続する
ここからは、Microsoft Learnにしたがってやっていきます
まずは、c#のコンソールを選びます
名前は言われた通りにします。初めてのEFCoreアプリ
をみて進めましょう
画面はありません。まずはModel.csクラスを追加します。
MicrosoftのはSQliteなので変えてあります。SQL Serverの設定は C#でSQLServerを見てください。
このプロジェクトのdotnet環境を設定
ここからこのプロジェクトの内部でのdotnet環境を設定します。いつものNuGetと同じような感じですが、今回はコンソールを使います
すると、Visual Studioの下部にコンソールが開きます。そこでコマンドを入力します
いつものようにNuGet管理からやっても同じです
ここからが違います。さきほど書いたModelに従って2つのテーブルをコマンドで作ってしまいます。
ようやくプログラム
ここまでやると、データベースにテーブルが2つ出来ています。同時にプロジェクトの中にMigrationsというフォルダーができて、新しいクラスができています。
今度はmainのプログラムを書いていきます。program.csを開いて次のコードを入れるか、サイトからコピーしましょう
最後のDELETEは止めています。そうしないと見れないので
SQLがみれない
これでテーブルをみると、確かに更新されているのが見れます。
ですが、これだと私の好きなSQLがまったくみれません。そこで、少し改造してSQLのLogを残すようにします
これだけでいいです。これで実行すると
このように、どの部分でどんなSQLになっているか表示されます。