แบบฝึกหัด - ใช้ตัวให้บริการฐานข้อมูล SQLite กับ EF Core
จนถึงจุดนี้ คุณได้บันทึกข้อมูลของคุณในฐานข้อมูลในหน่วยความจํา ฐานข้อมูลนี้ง่ายต่อการตั้งค่าและใช้งานในขณะที่คุณพัฒนาแอปพลิเคชันของคุณ แต่ข้อมูลไม่คงอยู่ ดังนั้นข้อมูลจะหายไปเมื่อรีสตาร์ตแอปพลิเคชัน ก่อนที่คุณปรับใช้แอปพลิเคชันของคุณ คุณจําเป็นต้องยืนยันข้อมูลไปยังฐานข้อมูล
ในแบบฝึกหัดนี้ คุณจะอัปเกรดแอปพลิเคชันของคุณเพื่อใช้ฐานข้อมูลเชิงสัมพันธ์เพื่อจัดเก็บข้อมูลของคุณ คุณจะใช้ SQLite เพื่อจัดเก็บข้อมูลของคุณ
ตั้งค่าฐานข้อมูล SQLite
ทําส่วนต่อไปนี้ให้เสร็จสมบูรณ์เพื่อตั้งค่าฐานข้อมูล SQLite
ติดตั้งเครื่องมือและแพคเกจต่อไปนี้
ในเทอร์มินัล ติดตั้งแพคเกจต่อไปนี้:
SQLite EF Core Database Provider: สามารถเข้าถึงฐานข้อมูลต่าง ๆ มากมายผ่านไลบรารีปลั๊กอินที่เรียกว่า ตัวให้บริการฐานข้อมูล แพคเกจต่อไปนี้คือตัวให้บริการฐานข้อมูล SQLite สําหรับ Entity Framework (EF) Core
dotnet add package Microsoft.EntityFrameworkCore.Sqlite --version 8.0เครื่องมือ EF 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 สร้างโฟลเดอร์ การโยกย้าย ในไดเรกทอรีโครงการของคุณที่ประกอบด้วยสองไฟล์ที่มีรหัสที่แสดงการโยกย้ายฐานข้อมูล
หลังจากที่คุณทําการโยกย้ายเสร็จสิ้นแล้ว คุณสามารถใช้เพื่อสร้างฐานข้อมูลและ Schema ของคุณได้
ในหน้าต่างเทอร์มินัล ให้เรียกใช้คําสั่ง
database updateต่อไปนี้เพื่อนําการโยกย้ายไปใช้กับฐานข้อมูล:dotnet ef database updateคุณควรเห็นไฟล์ Pizzas.db ที่สร้างขึ้นใหม่ในไดเรกทอรีโครงการของคุณ
เรียกใช้และทดสอบแอปพลิเคชัน
หลังจากที่คุณมีฐานข้อมูลสํารอง การเปลี่ยนแปลงของคุณจะยังคงอยู่
ทดสอบแอปพลิเคชันของคุณเหมือนกับการใช้ dotnet run และ Swagger UI หยุดแอปพลิเคชันโดยใช้คําสั่ง Ctrl + C จากนั้นเรียกใช้อีกครั้งและตรวจสอบว่าการเปลี่ยนแปลงของคุณยังคงอยู่ใน Pizzas.dbหรือไม่
ยินดีด้วย! คุณได้เชื่อมต่อฐานข้อมูลไปยัง API น้อยที่สุดของคุณแล้ว!