10月8日(火)1、2コマ目

今日、やったこと

  • [練習問題]練習問題1
  • モデルを使う(DBアクセス)

今日のホワイトボード

[練習問題]練習問題1

前回使ったコントローラー、ビューを使う練習問題。

URLとコントローラークラス、アクションメソッドの関係は下図のとおり。

図 URLとコントローラークラス、アクションメソッドの関係

正解例をあげておきます。

Controllers/RandomController.cs

コントローラークラス。

クライアントからのリクエストを受けて、処理を行い、ビューを表示。


Views/Random/Index.cshtml

ビュー。

コントローラークラスRandomControllerのアクションメソッドIndex()に対応するビュー。


Views/Random/Even.cshtml

ビュー。

コントローラークラスRandomControllerのアクションメソッドEven()に対応するビュー。


Views/Random/Odd.cshtml

ビュー。

コントローラークラスRandomControllerのアクションメソッドOdd()に対応するビュー。


モデルを使う

モデル自体は構造体的なデータをまとめたモノだが、データを取得、格納するためにDBアクセスも行う。

今回はDBアクセスをO/Rマッピングツールの"Entity Framework Core"を使って、SQLなしでDBからデータを取得する。

図 DbContextクラスとコントローラークラス

前回は以下をおこなった。

パッケージのインストール

以下の2つパッケージが必要。

  • Microsoft.EntityFrameworkCore
  • Oracel.EntityFrameworkCore

以前設定したローカルパッケージソース”MyPackage”から取得。

プロジェクト->NuGetパッケージの管理

パッケージソースを「MyPackage」に変更してインストール。

appsettings.json

DB接続情報(接続文字列)を設定。



Models/Group.cs

モデルのクラス。

データベースのCS_グループマスタテーブルとこのクラスを対応させるために、[Table("テーブル名")]をclassに設定。

CS_グループマスタテーブルと各プロパティを対応させるために[Column("列名")]を各プロパティに設定。



今日はここから。

Data/SampleDbContext.cs

DbContextクラスを継承。DBアクセスのポイントになるクラス。


Controllers/GroupController.cs

SampleDbContextクラスを使ってCS_グループマスタのデータを取得。

SampleDbContextクラスのインスタンスはコンストラクタの引数経由で受け取る。

DI機能を使って、SampleDbContextのインスタンスを生成、代入する。(要Program.cs編集)


Views/Group/Index.cshtml

GroupControllerから渡されたグループ一覧を表示。


Program.cs

DI機能でSampleDbContextのインスタンスを注入できるようにする必要あり。


次回は

Entity Frameworkを使ってDBアクセス。


このブログの人気の投稿

10月31日(木)1、2コマ目

10月15日(火)1、2コマ目

11月7日(木)1、2コマ目