「速習ASP.NET Core」のDBをSQLiteにする手順

会社では普段フロントエンドの構築を行っていますが、サーバサイドの言語としてC# / ASP.netが使われているため、業務の役に立つのではということで、ASP.NET Core を触っています。

山田祥寛さんの「速習ASP.NET Core」が分かりやすかったので、少しずつ読み進めているのですが、 「Part2.モデルの基本」のEntity Frameworkの説明で、MSSQLを使用している箇所をSQLiteで実装したかったので、 SQLiteの追加〜マイグレーションまでの手順をまとめてみました。

環境は下記のとおりです。

基本的には、下記の公式チュートリアルを、書籍の内容に置き換えて適用する形となります。

.ASP.NET Core MVC アプリへのモデルの追加 | Microsoft Docs

※namespaceは個人用のプロジェクト名に合わせているので、ご自身の環境に応じて変更してください。

/ModelsにMyContext.csを追加

using Microsoft.EntityFrameworkCore;

namespace tutorial_dotnet_core_mvc.Models
{
  public class MyContext: DbContext
  {
    public MyContext(DbContextOptions<MyContext> options):base(options) {}
    public DbSet<Book> Book {get; set;}
  }
}

SQLiteの追加

startup.csを編集

// usingを追加
using Microsoft.EntityFrameworkCore;
using tutorial_dotnet_core_mvc.Models;

public void ConfigureServices(IServiceCollection services)
{
  services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
  // 追加
  services.AddDbContext<MyContext>(options => options.UseSqlite("Data Source=MyDb.db"));
  ...
}

EntityFrameworkCore.Sqliteをターミナルから追加

dotnet add package Microsoft.EntityFrameworkCore.Sqlite --version 2.1.1

マイグレーションを実行

// migrationファイルの作成
dotnet ef migrations add InitialCreate
// データベースの作成
dotnet ef database update

注意点

SQLiteにはboolean型が無いため、DBに値を入力するときは、'0','1'に置き換える必要があります