Bài tập - Sử dụng nhà cung cấp cơ sở dữ liệu SQLite với EF Core
Cho đến lúc này, bạn đã lưu dữ liệu của mình trong cơ sở dữ liệu trong bộ nhớ. Cơ sở dữ liệu này rất dễ thiết lập và sử dụng trong khi bạn phát triển ứng dụng của mình, nhưng dữ liệu không liên tục. Kết quả là, dữ liệu sẽ bị mất khi ứng dụng được khởi động lại. Trước khi triển khai ứng dụng của mình, bạn cần duy trì dữ liệu cho cơ sở dữ liệu.
Trong bài tập này, bạn sẽ nâng cấp ứng dụng của mình để sử dụng cơ sở dữ liệu quan hệ để lưu trữ dữ liệu của mình. Bạn sẽ sử dụng SQLite để lưu trữ dữ liệu của mình.
Thiết lập cơ sở dữ liệu SQLite
Hoàn thành các phần sau để thiết lập cơ sở dữ liệu SQLite.
Cài đặt các công cụ và gói sau
Trong thiết bị đầu cuối, cài đặt các gói sau:
cấp cơ sở dữ liệu SQLite EF Core: Có thể truy nhập vào nhiều cơ sở dữ liệu khác nhau thông qua các thư viện bổ trợ được gọi là nhà cung cấp dữ liệu. Gói sau đây là nhà cung cấp cơ sở dữ liệu SQLite cho Entity Framework (EF) Core.
dotnet add package Microsoft.EntityFrameworkCore.Sqlite --version 8.0cụ EF Core: Công cụ cho EF Core thực hiện các tác vụ phát triển thời gian thiết kế. Ví dụ: họ tạo di chuyển, áp dụng di chuyển và tạo mã cho mô hình dựa trên cơ sở dữ liệu hiện có.
dotnet tool install --global dotnet-efMicrosoft.EntityFrameworkCore.Design: Chứa tất cả lô-gic thời gian thiết kế cho EF Core để tạo cơ sở dữ liệu của bạn.
dotnet add package Microsoft.EntityFrameworkCore.Design --version 8.0
Cho phép tạo cơ sở dữ liệu
Để cho phép tạo cơ sở dữ liệu, bạn cần đặt chuỗi kết nối cơ sở dữ liệu. Sau đó, bạn sẽ di chuyển mô hình dữ liệu của mình sang cơ sở dữ liệu SQLite.
Trong Program.cs, bên dưới
var builder = WebApplication.CreateBuilder(args);, hãy thêm chuỗi kết nối.var connectionString = builder.Configuration.GetConnectionString("Pizzas") ?? "Data Source=Pizzas.db";Mã này kiểm tra nhà cung cấp cấu hình để tìm chuỗi kết nối có Pizza. Nếu không tìm thấy chuỗi kết nối, nó sẽ sử
Data Source=Pizzas.dblàm chuỗi kết nối. SQLite sẽ ánh xạ chuỗi này tới tệp.Trong phần CRUD của hướng dẫn này, bạn đã sử dụng cơ sở dữ liệu trong bộ nhớ. Bây giờ bạn sẽ thay thế cơ sở dữ liệu trong bộ nhớ bằng một cơ sở dữ liệu liên tục.
Thay thế bộ thực thi cơ sở dữ liệu trong bộ nhớ hiện
builder.Services.AddDbContext<PizzaDb>(options => options.UseInMemoryDatabase("items"));trong dịch vụ bản dựng của bạn bằng SQLite ở đây:builder.Services.AddSqlite<PizzaDb>(connectionString);Với công cụ di chuyển EF Core, giờ đây bạn có thể tạo di chuyển đầu tiên của mình,
InitialCreate. Lưu tất cả các thay đổi của bạn, rồi chạy lệnh sau:dotnet ef migrations add InitialCreateEF Core tạo một di chuyển thư mục trong thư mục dự án của bạn có chứa hai tệp với mã đại diện cho di chuyển cơ sở dữ liệu.
Bây giờ bạn đã hoàn thành việc di chuyển, bạn có thể dùng nó để tạo cơ sở dữ liệu và sơ đồ của bạn.
Trong cửa sổ thiết bị đầu cuối, hãy chạy lệnh
database updatesau đây để áp dụng di chuyển cho cơ sở dữ liệu:dotnet ef database updateBạn sẽ thấy một tệp bản ghi mới Pizzas.db trong thư mục dự án của bạn.
Chạy và kiểm tra ứng dụng
Bây giờ bạn đã có cơ sở dữ liệu sao lưu, các thay đổi của bạn sẽ được duy trì.
Kiểm tra ứng dụng của bạn như trước khi dotnet run và giao diện người dùng Swagger. Dừng ứng dụng bằng cách sử ctrl+C này. Sau đó chạy lại và xác minh rằng các thay đổi của bạn vẫn tồn tại trong Pizzas.db.
Chúc mừng! Bạn đã liên kết một cơ sở dữ liệu với API tối thiểu của mình!