練習 - 使用 SQLite 資料庫提供者搭配 EF Core
截至目前,您已將資料儲存在內存資料庫中。 當您開發應用程式時,此資料庫很容易設定及使用,但數據並不持續。 因此,重新啟動應用程式時,數據將會遺失。 在部署應用程式之前,您必須將資料保存到資料庫。
在此練習中,您將升級應用程式以使用關係資料庫來儲存您的數據。 您將使用 SQLite 來儲存您的資料。
設定 SQLite 資料庫
完成下列各節以設定 SQLite 資料庫。
安裝下列工具和套件
在終端機中,安裝下列套件:
SQLite EF Core 資料庫提供者:可以透過稱為 資料庫提供者的外掛程式連結庫存取許多不同的資料庫。 下列套件是 Entity Framework (EF) Core 的 SQLite 資料庫提供者。
dotnet add package Microsoft.EntityFrameworkCore.Sqlite --version 8.0EF Core 工具:這些工具執行 EF Core 在設計時期的開發任務。 例如,他們會建立移轉、套用移轉,並根據現有的資料庫為模型產生程序代碼。
dotnet tool install --global dotnet-efMicrosoft.EntityFrameworkCore.Design:包含 EF Core 建立資料庫的所有設計時間邏輯。
dotnet add package Microsoft.EntityFrameworkCore.Design --version 8.0
啟用資料庫創建功能
若要啟用資料庫建立,您必須設定資料庫連接字串。 接著,您會將數據模型移轉至 SQLite 資料庫。
在 Program.cs 的 下
var builder = WebApplication.CreateBuilder(args);,新增連接字串。var connectionString = builder.Configuration.GetConnectionString("Pizzas") ?? "Data Source=Pizzas.db";此程式代碼會檢查組態提供者是否有名為 Pizzas 的連接字串。 如果找不到,則會使用
Data Source=Pizzas.db作為連接字串。 SQLite 會將此字串對應至檔案。在本教學課程的 CRUD 部分中,您已使用記憶體內部資料庫。 現在,您要將記憶體內部資料庫取代為持續性資料庫。
在此將您組建服務中目前的記憶體內部資料庫實作
builder.Services.AddDbContext<PizzaDb>(options => options.UseInMemoryDatabase("items"));,更換為 SQLite 資料庫:builder.Services.AddSqlite<PizzaDb>(connectionString);使用 EF Core 移轉工具,您現在可以產生第一次移轉,
InitialCreate。 儲存所有變更,然後執行下列命令:dotnet ef migrations add InitialCreateEF Core 會在您的項目目錄中建立 Migrations 資料夾,其中包含兩個檔案,其中包含代表資料庫移轉的程式代碼。
現在您已經完成移轉,您可以使用它來建立資料庫和架構。
在終端機視窗中,執行下列
database update命令以將移轉套用至資料庫:dotnet ef database update您應該會在項目目錄中看到新建立 的Pizzas.db 檔案。
執行及測試應用程式
既然您有備份資料庫,您的變更將會保存。
像之前一樣使用 dotnet run 和 Swagger UI 測試您的應用程式。 使用 Ctrl+C 命令停止應用程式。 然後再次執行,並確認您的變更仍會保存在 Pizzas.db中。
祝賀! 您已將資料庫連線到最小的 API!