ASP.NET Core Using Sqlite
2024-07-02
筆記 ASP.NET Core 使用 Sqlite 作為儲存資料的資料庫的設定方式。
說明
第一步先安裝 Microsoft.EntityFrameworkCore.Sqlite
Nuget Package。
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.6" />
</ItemGroup>
接著設定 appsettings.json
檔案,設定 Sqlite 的連線字串。
{
"ConnectionStrings": {
"DefaultConnection": "Data Source=Todo.db"
}
}
最後回到 Program.cs
設定 DbContext 的連線,同時啟用 Database Developer Page,可以輔助開發時進行除錯。
builder.Services.AddDbContext<TodoDbContext>(options =>
options.UseSqlite(builder.Configuration.GetConnectionString("TodoDbContext")));
builder.Services.AddDatabaseDeveloperPageExceptionFilter();
接著必須透過 Add-Migration
及 Update-Database
指令進行資料庫的更新。
但這邊我們採用另外的方式,讓部署後的應用程式自動建立資料庫。
using (var scope = app.Services.CreateScope())
{
var services = scope.ServiceProvider;
var context = services.GetRequiredService<TodoDbContext>();
context.Database.EnsureCreated();
}
而如果想要達到 InMemory Database 的效果,可以加上 context.Database.EnsureDeleted();
進行資料庫的清除,確保每次都是新的資料庫。