.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