ASP.NET Core Razor Pages - SQLite を利用する

📋 目次(クリックで展開)

ASP.NET Core Razor Pages プロジェクトで、SQLite を利用する方法を紹介します。

パッケージのインストール

次のパッケージをインストールします。

  • Microsoft.EntityFrameworkCore
  • Microsoft.EntityFrameworkCore.Sqlite
  • Microsoft.EntityFrameworkCore.SqlServer
  • Microsoft.EntityFrameworkCore.Tools

SQLite データベースファイルの用意

プロジェクトのルールフォルダ配下に Data フォルダを作成し、App.db などのデータベースファイルを作成します。

モデルクラスの用意

Models フォルダを作成し、任意のモデルクラスを作成します。

public class Post
{
[Key]
public string Id { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public DateTime PublishedDate { get; set; }
public DateTime UpdatedDate { get; set; }
}

DbContext 継承クラスの用意

今回は、DbContext クラスを継承する、ApplicationDbContext クラスを用意します。OnConfiguring メソッドで、UseSqlite メソッドを通じて SQLite データベースを指定します。

public class ApplicationDbContext : DbContext
{
public DbSet<Post> Posts { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite(@"Data source=Data\\App.db");
}
}

DbContext 継承クラスの登録

次の様に AddDbContext メソッドを通じて、ApplicationDbContext クラスを通じてデータベース操作ができるようにします。

var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddRazorPages();
builder.Services.AddDbContext<ApplicationDbContext>();

EntityFrameworkCore によるマイグレーションとデータベース作成

Package Manager コンソール上で次の EntityFramework コマンドを実行し、Post モデルクラスからデータテーブルを作成します。※ Init は任意の名前(作業内容を示す)に変更できます。

Terminal window
Add-Migration Init
Update-Database

アプリケーションの動作確認

予め Post クラスと ApplicationDbContext クラスをベースに Index, Create, Delete, Details ページを作成しておきます。その上で、アプリケーションを実行し、https://localhost:12345/Posts/Index や /Posts/Create にアクセスし、データの読み込みや書き込みができることを確認します。詳細は、添付サンプルをご覧ください。

SQLSlite_Test.zip


💬 コメント