.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
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlite(Configuration.GetConnectionString("DefaultConnection")));
// Add framework services.
services.AddMvc();
}
appsettings.jsonを開いて、DefaultConnectionの値をSQLiteが使うファイル名にする。
appsettings.json
{
"ConnectionStrings": {
"DefaultConnection": "Filename=./sample.db"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
}
Modelクラスを作って、スキャフォールディング
あとは、SQL Serverのときと同じで、ModelクラスになるPersonクラスを使って、スキャフォールディングを実行。
namespace SampleSQLiteMvc.Models
{
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
}
マイグレーションとデータベースのアップデートをすれば完了です。
dotnet ef migrations add init dotnet ef database update
実行
実行するとこんな感じに、SQL Serverのときと同じように動きます。
肝は、NuGet で Microsoft.EntityFrameworkCore.SQLite を入れて、Startupクラスで接続先を変えるだけなので、それほど難しくありません。
サンプルコード
サンプルコードはこちら
https://1drv.ms/u/s!AmXmBbuizQkXgfwL7jS1NrKxv8KbQg



