12月5日(木)1、2コマ目

今日、やったこと

  • [練習問題]ASP.NET Core MVC+LINQ
  • [サンプル]EntityFrameworkでDB更新

今日のホワイトボード

[練習問題]ASP.NET Core MVC+LINQ

前回、第2段階まで解説済み。今日は第3段階、第4段階を解説。

第4段階完成版をあげておきます。

appsettings.json

前回と同じ。

Program.cs

前回と同じ。

[モデル]Area.cs

引数でプロパティを初期化するコンストラクタを追加。


[モデル]WeatherData.cs

前回と同じ。


[モデル]WeatherViewModel.cs

コントローラからビューにデータを渡す際に利用。第4段階の検索結果、エラーメッセージを格納するプロパティを追加。


[モデル]AreaDays.cs

第4段階の検索結果(観測地ごとの検索条件に一致する日数を格納)を格納。


SearchDbContext.cs

前回と同じ。


[コントローラ] WeatherController.cs

第3段階、第4段階の検索を行うメソッドを追加。

Index()からこれらのメソッドを呼び出し。


[ビュー]Index.cshtml

第3段階、第4段階の検索を実行するためのボタンおよび検索結果の表示を追加。


[サンプル]EntityFrameworkでDB更新

ORマッピングツールのEntity Frameworkを使って、プログラム中にSQLを書かずにDBを更新。

更新は

 ①DbContextクラスの各テーブルのデータを保持するプロパティを変更

 ②DbContextクラスのSaveChanges()を呼び出し

と、これだけで更新ができる。

作成した画面

データ入力用テキストボックスや選択用の選択リストが商品毎にある。

これらすべてをコントローラのメソッドの引数として受け取るにはあまりにも量が多いため、現実的ではない。

そこでフォーム入力データ取得用プロパティ Request.Form[] で取得する。

また、取得する際に必要な名前(name属性値)に商品IDを含めて入力・選択値を取得しやすくしている。

図 更新、変更、登録用画面

ポイントになるソースコードを紹介。

ItemDbContext.cs

DBアクセスを担当。更新のために今までと変わることはない。


ItemContoller.cs

Request.Form[]にname属性値を指定して入力・選択値を取得。

DbContextクラスの各プロパティの更新内容がSaveChanges()メソッド実行でDBに反映される。


次回は

新規登録をやります。

評価用課題を作ってもらいます。






このブログの人気の投稿

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

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

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