แบบฝึกหัด - ใช้ตัวให้บริการฐานข้อมูล SQLite กับ EF Core

เสร็จสมบูรณ์เมื่อ

จนถึงจุดนี้ คุณได้บันทึกข้อมูลของคุณในฐานข้อมูลในหน่วยความจํา ฐานข้อมูลนี้ง่ายต่อการตั้งค่าและใช้งานในขณะที่คุณพัฒนาแอปพลิเคชันของคุณ แต่ข้อมูลไม่คงอยู่ ดังนั้นข้อมูลจะหายไปเมื่อรีสตาร์ตแอปพลิเคชัน ก่อนที่คุณปรับใช้แอปพลิเคชันของคุณ คุณจําเป็นต้องยืนยันข้อมูลไปยังฐานข้อมูล

ในแบบฝึกหัดนี้ คุณจะอัปเกรดแอปพลิเคชันของคุณเพื่อใช้ฐานข้อมูลเชิงสัมพันธ์เพื่อจัดเก็บข้อมูลของคุณ คุณจะใช้ SQLite เพื่อจัดเก็บข้อมูลของคุณ

ตั้งค่าฐานข้อมูล SQLite

ทําส่วนต่อไปนี้ให้เสร็จสมบูรณ์เพื่อตั้งค่าฐานข้อมูล SQLite

ติดตั้งเครื่องมือและแพคเกจต่อไปนี้

ในเทอร์มินัล ติดตั้งแพคเกจต่อไปนี้:

  1. SQLite EF Core Database Provider: สามารถเข้าถึงฐานข้อมูลต่าง ๆ มากมายผ่านไลบรารีปลั๊กอินที่เรียกว่า ตัวให้บริการฐานข้อมูล แพคเกจต่อไปนี้คือตัวให้บริการฐานข้อมูล SQLite สําหรับ Entity Framework (EF) Core

    dotnet add package Microsoft.EntityFrameworkCore.Sqlite --version 8.0
    
  2. เครื่องมือ EF Core: เครื่องมือสําหรับ EF Core ดําเนินการงานพัฒนาในเวลาการออกแบบ ตัวอย่างเช่น พวกเขาสร้างการโยกย้าย นําการโยกย้ายไปใช้ และสร้างโค้ดสําหรับแบบจําลองที่ยึดตามฐานข้อมูลที่มีอยู่

    dotnet tool install --global dotnet-ef
    
  3. Microsoft.EntityFrameworkCore.Design: ประกอบด้วยตรรกะเวลาการออกแบบทั้งหมดสําหรับ EF Core เพื่อสร้างฐานข้อมูลของคุณ

    dotnet add package Microsoft.EntityFrameworkCore.Design --version 8.0
    

เปิดใช้งานการสร้างฐานข้อมูล

เมื่อต้องการเปิดใช้งานการสร้างฐานข้อมูล คุณจําเป็นต้องตั้งค่าสตริงการเชื่อมต่อฐานข้อมูล จากนั้นคุณจะย้ายแบบจําลองข้อมูลของคุณไปยังฐานข้อมูล SQLite

  1. ใน Program.csภายใต้ var builder = WebApplication.CreateBuilder(args);ให้เพิ่มสตริงการเชื่อมต่อ

    var connectionString = builder.Configuration.GetConnectionString("Pizzas") ?? "Data Source=Pizzas.db";
    

    รหัสนี้จะตรวจสอบผู้ให้บริการการกําหนดค่าสําหรับสตริงการเชื่อมต่อที่ชื่อว่า Pizzas หากไม่พบจะใช้ Data Source=Pizzas.db เป็นสตริงการเชื่อมต่อ SQLite จะแมปสตริงนี้กับไฟล์

  2. ในส่วน CRUD ของบทช่วยสอนนี้ คุณใช้ฐานข้อมูลในหน่วยความจํา ตอนนี้คุณกําลังจะแทนที่ฐานข้อมูลในหน่วยความจําด้วยฐานข้อมูลแบบถาวร

    แทนที่การใช้งานฐานข้อมูลในหน่วยความจําปัจจุบันของคุณ builder.Services.AddDbContext<PizzaDb>(options => options.UseInMemoryDatabase("items")); ในบริการรุ่นของคุณด้วย SQLite ที่นี่:

    builder.Services.AddSqlite<PizzaDb>(connectionString);
    
  3. ด้วยเครื่องมือการโยกย้าย EF Core คุณสามารถสร้างการโยกย้ายแรกของคุณ InitialCreateได้แล้ว บันทึกการเปลี่ยนแปลงทั้งหมดของคุณ จากนั้นเรียกใช้คําสั่งต่อไปนี้:

    dotnet ef migrations add InitialCreate
    

    EF Core สร้างโฟลเดอร์ การโยกย้าย ในไดเรกทอรีโครงการของคุณที่ประกอบด้วยสองไฟล์ที่มีรหัสที่แสดงการโยกย้ายฐานข้อมูล

  4. หลังจากที่คุณทําการโยกย้ายเสร็จสิ้นแล้ว คุณสามารถใช้เพื่อสร้างฐานข้อมูลและ Schema ของคุณได้

    ในหน้าต่างเทอร์มินัล ให้เรียกใช้คําสั่ง database update ต่อไปนี้เพื่อนําการโยกย้ายไปใช้กับฐานข้อมูล:

    dotnet ef database update
    

    คุณควรเห็นไฟล์ Pizzas.db ที่สร้างขึ้นใหม่ในไดเรกทอรีโครงการของคุณ

เรียกใช้และทดสอบแอปพลิเคชัน

หลังจากที่คุณมีฐานข้อมูลสํารอง การเปลี่ยนแปลงของคุณจะยังคงอยู่

ทดสอบแอปพลิเคชันของคุณเหมือนกับการใช้ dotnet run และ Swagger UI หยุดแอปพลิเคชันโดยใช้คําสั่ง Ctrl + C จากนั้นเรียกใช้อีกครั้งและตรวจสอบว่าการเปลี่ยนแปลงของคุณยังคงอยู่ใน Pizzas.dbหรือไม่

ยินดีด้วย! คุณได้เชื่อมต่อฐานข้อมูลไปยัง API น้อยที่สุดของคุณแล้ว!