今はKokoKimeEatsWebというプロジェクトの一つしかないけど、実際仕事では一つのソリューションの中に複数のプロジェクトが存在することがほとんど。どんな感じにプロジェクトが分かれているかというと、N層アーキテクチャっていうアーキテクチャに基づいて分かれてる。なにそれおいしいのって人はいったん違うサイトで調べてみてほしい。
今回は複数のプロジェクトを作成してN層アーキテクチャにしていこうと思う。
さっそくプロジェクトを作成していく。
クラスライブラリを選択して次を押す。
KokoKimeEats.DataAccessというプロジェクト名にする。
作成を押す。
同じようにKokoKimeEats.Models、KokoKimeEats.Utility、KokoKimeEatsも作っていく。
プロジェクトが作成できたら、フォルダを移動していく。Utility内のSD.csは別途作成する。
移動出来たら元のフォルダは削除しちゃってOK。
ApplicationDbContext.cs を開くと、エラーがある。なぜかというとパッケージがこのプロジェクトにはインストールされていないからなのと、普通にフォルダを移動したことでリファレンスとかnamespaceがおかしくなった。今から修正していく。
まずはKokoKimeEats.DataAccessに以下パッケージをインストール
- Microsoft.EntityFrameworkCore.Design
- Microsoft.EntityFrameworkCore.Tools
- Microsoft.EntityFrameworkCore.SqlServer
- Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCoreパッケージのインストールがまだだったのでここでインストール。
マイグレーションファイルも同様に中身を一つずつ開いてエラーを解消していく。
マイグレーションファイルの直下にあるデザイナーズファイルの中身のnamespaceも忘れずに変更する。
namespace KokoKimeEatsWeb.Migrations → namespace KokoKimeEats.DataAccess.Migrationsに変更。
using KokoKimeEatsWeb.Data → using KokoKimeEats.DataAccess.Data;に変更。
プロジェクト参照も追加していく。
上の2つにチェック。
モデルは上記のような構成にする。
いったんKokoKimeEats.DataAccessを右クリックしてビルドうぃしてみて、エラーがまだあると思うから一つずつ解消していく。