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 にアクセスし、データの読み込みや書き込みができることを確認します。詳細は、添付サンプルをご覧ください。