ASP.NET Core MVC で SQLite を使う

.NET Core上でF#とSQLiteを結び付ける前哨戦として、ASP.NET Core MVC で SQLite を使ってみます。
方法としては、Visual Studio で「ASP.NET Core Web Applicaiton(.NET Core)」は、SQL Serverを使う設定になっているので、これをSQLiteに切り替えるだけです。

NuGetでSQLiteをインストール

– Microsoft.EntityFrameworkCore.SQLite
– Microsoft.EntityFrameworkCore.SQLite.Desgin

の2つをインストールします。Desginのほうは、データベースファーストのほうで使うけど、一応インストール。

SQLiteの設定に切り替え

StartupクラスのConfigureServicesメソッドで、UseSqlServerの箇所をUseSqliteに切り替え。

Startup.cs

[code lang=”csharp”]
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext(options =>
options.UseSqlite(Configuration.GetConnectionString(“DefaultConnection”)));
// Add framework services.
services.AddMvc();
}
[/code]

appsettings.jsonを開いて、DefaultConnectionの値をSQLiteが使うファイル名にする。

appsettings.json

[code lang=”csharp”]
{
“ConnectionStrings”: {
“DefaultConnection”: “Filename=./sample.db”
},
“Logging”: {
“IncludeScopes”: false,
“LogLevel”: {
“Default”: “Debug”,
“System”: “Information”,
“Microsoft”: “Information”
}
}
}
[/code]

Modelクラスを作って、スキャフォールディング

あとは、SQL Serverのときと同じで、ModelクラスになるPersonクラスを使って、スキャフォールディングを実行。

[code lang=”csharp”]
namespace SampleSQLiteMvc.Models
{
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
}
[/code]

マイグレーションとデータベースのアップデートをすれば完了です。

[code lang=”csharp”]
dotnet ef migrations add init
dotnet ef database update
[/code]

実行

実行するとこんな感じに、SQL Serverのときと同じように動きます。

肝は、NuGet で Microsoft.EntityFrameworkCore.SQLite を入れて、Startupクラスで接続先を変えるだけなので、それほど難しくありません。

サンプルコード

サンプルコードはこちら
https://1drv.ms/u/s!AmXmBbuizQkXgfwL7jS1NrKxv8KbQg

カテゴリー: ASP.NET, SQLite パーマリンク