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 は任意の名前(作業内容を示す)に変更できます。
Add-Migration Init Update-Database
アプリケーションの動作確認
予め Post クラスと ApplicationDbContext クラスをベースに Index, Create, Delete, Details ページを作成しておきます。その上で、アプリケーションを実行し、https://localhost:12345/Posts/Index や /Posts/Create にアクセスし、データの読み込みや書き込みができることを確認します。詳細は、添付サンプルをご覧ください。