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

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

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