【T2e】Entity Framework Core を用いたデータベースへのアクセス(6/6)
プロジェクトタイプ | C#コンソールアプリ※ |
---|---|
プロジェクト名 | T2e |
ソリューション名 | PIT2 |
ターゲットフレームワーク | .NET 8.0(長期的なサポート) |
最上位レベルのステートメントを使用しない | 使用する(チェックオフ) |
※ 「コンソールアプリ(.NET Framework)」ではないので注意せよ!
注意
- 本ページの作業内容は 前のページまでの続き になっていることに注意せよ.
- 先に前のページまでをすべて読み,指示されている作業を済ませてから本ページを読むこと.
- プロジェクトの作成作業についてはO/Rマッピングの必要性を参照せよ.
2e-6. Entity Framework Coreに新規データ登録
最後に,Entity Framework Core を用いたPostgreSQL側への書き込みも試してみよう. Program.cs を_に示すように変更する.
|
|
補足として16行目に現れているDateOnly構造体は,.NET 6.0で導入されたデータ型である. DateOnly構造体は,DateTime構造体に似るが時刻を含まない構造体である.
書き換えたら実行してみよう.特に何も表示されないはずだがそれで正常な動作である(このプログラムには表示処理がないため).
_を見ると分かるように,C#のプログラムとしては新しくTblJugyoin
クラスのインスタンスを作り(②),
それをデータベースに追加しているに過ぎない.③の.Add()
メソッドなどでメモリ上のデータベースクラスへの登録(追加)が行われ,
最終的に④の.SaveChanges()
メソッドを呼び出すと実際にデータベースへの書き込みが行われる(この操作手順はのちのち重要となるので覚えておこう) .
Entity Framework Core を用いると,このようにデータベースの存在をあまり意識せずにデータベースを操作をすることができる.
コマンドラインターミナル1でリスト2e-4-6のコマンドを実行して直前に実行されたSQL文も確認しておこう. _のようにINSERT文が実行されていることが分かる.
2022-01-12 16:10:55.187 JST [44728] LOG: execute <unnamed>: INSERT INTO tbl_jugyoin (jugyoin_no, buai, bumon_no, email, first_name, kanrisha_no, kyuyo, last_name, mei, phone_no, sei, shokushu_no, shugyo_bi)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13)
2022-01-12 16:10:55.187 JST [44728] DETAIL: parameters: $1 = '300', $2 = NULL, $3 = NULL, $4 = 't-iryo', $5 = 'taro', $6 = NULL, $7 = NULL, $8 = 'iryo', $9 = '太郎', $10 = NULL, $11 = '医療', $12 = 'ST_CLERK', $13 = '2020-04-01'
また,pgAdminでも実際に変更が反映されていることを確認しておこう.
pgAdminを起動して,「Servers」→「PostgreSQL」→「SampleDB_hr」を右クリックし「Query Tool」を起動し リスト2d-4-1と同じSQL文を実行する. 実行結果は_のようになる.コード上で作成した「医療太郎」なる従業員が追加されていることが分かる.
以上を確認したら,今回のチュートリアルは完了である. なお今回は課題が出題されている.忘れずに取り組むこと .
タブのタイトルは「 開発用PowerShell 」もしくは「 Developer PowerShell 」となっている. ↩︎