目次:クリックでジャンプ
Visual Stuido Community 2022をインストール
Community2022をインストールする
ASP.NET Core MVCの準備
新しいプロジェクトの作成。
MVCを選択する。
プロジェクト名を変更。今回は上記のようにしたが、プロジェクト名をParttimeReportWeb、ソリューション名を Parttime にしても良い。ソリューションの中に複数のプロジェクトが含むことができる。
認証の種類はつけてもいいが今はシンプルにしたいのでチェックを付けない。
httpsをクリックしてアプリケーションを実行すると、プロジェクトがビルドされ、ブラウザが開く。
EFCoreのインストール
先にデバッグの停止をする。
Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 6.0.35 Install-Package Microsoft.EntityFrameworkCore.Design -Version 6.0.35
上記のようにバージョンを指定しないと、.NET6用の最新バージョン(6.0.0~)をインストールしようとし、互換性がないため以下エラーが表示された。ちなみに.NET6と互換性がある以下パッケージの最新のバージョンは6.0.35っぽい。間違えていたら教えて欲しい。
Install-Package : NU1202: パッケージ Microsoft.EntityFrameworkCore.Design 8.0.10 は net6.0 (.NETCoreApp,Version=v6.0) と互換性があり ません。 パッケージ Microsoft.EntityFrameworkCore.Design 8.0.10 がサポートするもの: net8.0 (.NETCoreApp,Version=v8.0) 発生場所 行:1 文字:1 + Install-Package Microsoft.EntityFrameworkCore.Design + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Install-Package], Exception + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCo mmand Install-Package : パッケージの復元に失敗しました。'ParttimeReport' のパッケージの変更をロールバックします。 発生場所 行:1 文字:1 + Install-Package Microsoft.EntityFrameworkCore.Design + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Install-Package], Exception + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCo mmand
ツール>Nugetパッケージ マネージャー>ソリューションのNugetパッケージの管理 でインストールできているか確認することができる。
EFCoreはデータベースへの接続や操作を簡単にしてくれる便利なツール
データモデルのクラスの定義
Entity Framework CoreやMVCアプリケーションで作業する際、データベースに直接テーブルを作成することはしないみたい。代わりに、プロジェクト内でモデルを作成し、migrationを実行することで自動的テーブルを作成してくれる。
テーブルの内容を記載する。このParttimeクラスの中で、複数のプロパティを作成する。Parttimeテーブルに欲しいすべてカラムを作成する。プロジェクト名とモデルに追加するクラス名、データベース名を同じにしちゃダメっぽい。同じにすると失敗する。
テーブルの主キーとして、Idをプロパティとして定義したんだけど、モデル内でそれを明示的に定義することもできるらしい。Data Annotaionと呼ばれるものを使用するみたい。
スキャフォールディング
登録・更新・削除などのプログラムを自動で生成してくれる便利な機能をスキャフォールディングという。
マイグレーション
モデルの中のParttimeクラスに合わせてテーブルを作成する。
Add-Migration InitialCreate Update-Database
Nugetで上記コマンドを実行する。
データベースの作成
SQL Serverをダウンロード
SSMSをダウンロード
日本語版をインストールする。
Windows認証でログイン
SSMS でつなぐときは、『サーバー証明書を信頼する』にチェックすればエラーは表示されなくなった。
接続文字列の変更
このプログラムはどのデータベースに接続するかということ。やりたいこととしては、appsettings.jsonにデータベースの接続文字列を設定する。
接続文字列の取得方法は、左のSQLサーバー、オブジェクトエクスプローラーを開き、既存のSQLサーバー名を選択。(SSMSにログインする時のサーバー名)
データベースを展開すると、先ほど作成したParttimeDBをクリック。
右下のプロパティウィンドウの接続文字列の値をコピーする。
ConnectionStringsのParttimeReportContextの値にそのまま貼り付ける。
Add-Migration InitialCreate Update-Database
再度、上記コマンドをツール>Nuget パッケージマネージャー>パッケージマネージャーコンソール で実行するとテーブルが作成される。