ASP.NET MVC メモ

SQLite, Entity Framework

・NuGet
EntityFrameworkCore.sqlite

・SQLite
ファイルを作成する。(DB Browser for SQLiteを利用)

テーブル名:Hello
カラム:ID int primary, Name text
として作成。

・サーバーエクスプローラ
SQLiteはサーバーエクスプローラ非対応だが、他のDBなら接続文字列はサーバーエクスプローラのプロパティから確認できる。

・モデルを作成する。今回はHelloクラス。

・スキャフォールディング実施

Controllersの上(そうしないとHelloesController.csが最上層でできる)
コンテキストメニュー>追加>新規スキャフォールディングアイテム>Entity Frameworkを使用したビューがあるMVCコントローラー

Controllersフォルダの中にHelloesController.cs
Views/Helloesフォルダの中に*.cshtmlができる。

・SQLiteに切り替え

Startup.cs>ConfigureServices()
の中で
options.UseSqlite (Configuration.GetConnectionString(“Default”)));
のように変更する。

appsettings.json
の中に以下を追加

“ConnectionStrings”: {
“Default”: “Data Source=db.sqlite”
}

ここのDefaultの文字は自由

上記の指定だとプロジェクトフォルダと同じ階層にDBファイルを設置する。

DB無し+スキャフォールディングを使わない場合

・Modelsフォルダの中にクラスを作成。

・Views/Hogeフォルダの中にcshtmlを作成。jsが必要ならsectionで追加。

・Controllersフォルダの中にクラスを作成。

Migrationを使う場合

・NuGet

EntityFrameworkCore.sqlite
EntityFrameworkCore.Tools

・モデル作る(Modelsの中)

・コンテキスト作る(Dataの中)

・Startup

using Microsoft.EntityFrameworkCore;

追加する。

・Startup.cs>ConfigureServices

services.AddDbContext<Data.TestContext>(options =>
options.UseSqlite(Configuration.GetConnectionString(“DefaultConnection”)));

追加する。

・appsettings.json

“ConnectionStrings”: {
“DefaultConnection”: “Filename=./sample.db”
},

追加する。

・パッケージマネージャコンソール

PM> Add-Migration Ini
(Iniはクラス名になる)

Migrations>日付_InitialModels.cs
が作成される。

PM> Update-Database

DB更新の場合、Iniの部分に変更内容。

MySQL

APS.NET Core MVCは以前に数回さわっただけで、まだ使い始めたばかりなので色々調べながら試している状態。

NuGetより
MySql.Data.EntityFrameworkCore
をインストール

appsettings.json

以下を追加。

Startup.cs

using Microsoft.EntityFrameworkCore;
を追加。

ConfigureServices
の中に以下を追加。

MvcBasicContext.cs

作成。

Member.cs

作成。

MySQL

VPS上のMySQLに今回は手動でテーブルを準備。

Controller

追加。

View

試しに呼び出してみる。

MDBファイル

手軽に利用できるmdbを使ってみた。