Section 6: Lab: เชื่อม SQL Server ด้วย EF Core 10
- สร้าง Model, DbContext และ Migration บน SQL Server 2025
- ลงทะเบียน DbContextFactory ให้ทำงานร่วมกับ Hot Chocolate
- Resolver ที่ดึงข้อมูลผ่าน DbContext และ Service ด้วย Dependency Injection
- Nested Field สำหรับข้อมูลที่สัมพันธ์กัน
- Lab: Query รายการสินค้าพร้อมหมวดหมู่จากฐานข้อมูลจริง
Section 7: Lab: DataLoader และปัญหา N+1
- ปัญหา N+1 Query ใน GraphQL เกิดขึ้นได้อย่างไร
- Batch DataLoader และ Group DataLoader
- สร้าง DataLoader ด้วย Source Generator
- ตรวจ SQL ที่เกิดขึ้นจริงด้วย Logging ของ EF Core
- Lab: ลดจำนวน Query จากหลายร้อยครั้งเหลือไม่กี่ครั้ง
Section 8: Lab: Paging, Filtering, Sorting และ Projection
- Cursor-based Paging ตามแบบ Connection และ Offset Paging
- Filtering และ Sorting ที่แปลงเป็น Query ของ EF Core
- Projection ให้ดึงเฉพาะคอลัมน์ที่ Client ขอ
- ข้อควรระวังด้านประสิทธิภาพและการจำกัดขนาดหน้า
- Lab: หน้าค้นหาสินค้าที่กรอง เรียง และแบ่งหน้าได้
Section 9: Lab: Mutation และ Input Type
- ออกแบบ Mutation ตามแนวทางที่แนะนำ: Input และ Payload
- Mutation Conventions ของ Hot Chocolate
- สร้าง แก้ไข และลบข้อมูลพร้อม Transaction
- ตรวจสอบข้อมูลนำเข้าก่อนบันทึกลงฐานข้อมูล
- Lab: Mutation สร้างคำสั่งซื้อและปรับสต็อกสินค้า
Section 10: การจัดการ Error และ Validation
- รูปแบบ Error ใน Response ของ GraphQL
- Error ที่เป็นส่วนหนึ่งของ Schema กับ Error ของระบบ
- Error Filter สำหรับซ่อนรายละเอียดภายในไม่ให้หลุดถึง Client
- Validation ของ Query ตามข้อกำหนด GraphQL
- Lab: ส่ง Error ที่ Client นำไปแสดงผลได้เมื่อสต็อกไม่พอ