
Entity Framework Core ขั้นสูง
Raw SQL, stored procedures, transaction, AsNoTracking, AsSplitQuery, query tags, interceptors, การปรับแต่งประสิทธิภาพ
1จะเรียกใช้คิวรี raw SQL เพื่อดึงเอนทิตีใน EF Core ได้อย่างไร?
จะเรียกใช้คิวรี raw SQL เพื่อดึงเอนทิตีใน EF Core ได้อย่างไร?
คำตอบ
เมธอด FromSql() หรือ FromSqlRaw() ช่วยให้สามารถเรียกใช้คิวรี raw SQL พร้อมกับคืนค่าเอนทิตีที่ถูกติดตามโดย DbContext สิ่งนี้มีประโยชน์ในสถานการณ์ที่ LINQ ไม่สามารถแสดงคิวรีได้โดยตรง เช่น การเรียก stored procedures หรือฟังก์ชันที่คืนค่าเป็นตาราง จากนั้นผลลัพธ์สามารถประกอบเข้ากับ LINQ เพื่อเพิ่มตัวกรองหรือรวมความสัมพันธ์ได้
2ความแตกต่างระหว่าง FromSqlRaw() กับ ExecuteSqlRaw() ใน EF Core คืออะไร?
ความแตกต่างระหว่าง FromSqlRaw() กับ ExecuteSqlRaw() ใน EF Core คืออะไร?
คำตอบ
FromSqlRaw() ใช้สำหรับเรียกใช้คิวรี SELECT ที่คืนค่าเอนทิตีที่ถูกติดตาม ทำให้สามารถประกอบเข้ากับ LINQ ได้ ExecuteSqlRaw() ใช้สำหรับเรียกใช้คำสั่งที่ไม่ใช่คิวรี (INSERT, UPDATE, DELETE) และคืนค่าจำนวนแถวที่ได้รับผลกระทบ FromSqlRaw() ใช้กับ DbSet ในขณะที่ ExecuteSqlRaw() ใช้กับ Database ความแตกต่างนี้รับประกันความปลอดภัยของชนิดข้อมูลและความสอดคล้องของโมเดล
3จะเรียก stored procedure ที่คืนค่าเอนทิตีใน EF Core ได้อย่างไร?
จะเรียก stored procedure ที่คืนค่าเอนทิตีใน EF Core ได้อย่างไร?
คำตอบ
ใช้ FromSqlRaw() หรือ Database.SqlQuery<T>() เพื่อเรียก stored procedure และแมปผลลัพธ์ไปยังเอนทิตี สิ่งสำคัญคือต้องเพิ่ม AsEnumerable() หลังจากการเรียก เพื่อป้องกันไม่ให้ EF Core พยายามประกอบคิวรีบนผลลัพธ์ของ stored procedure ซึ่งจะทำให้เกิดข้อผิดพลาดทางไวยากรณ์ SQL พารามิเตอร์สามารถส่งผ่านได้โดยใช้ไวยากรณ์ @p0, @p1 เพื่อป้องกัน SQL injection
บทบาทของ AsNoTracking() ใน EF Core คืออะไร?
เมื่อใดควรใช้ AsNoTrackingWithIdentityResolution() แทน AsNoTracking()?
+22 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ .NET อื่นๆ
พื้นฐาน C#
LINQ & Delegates
พื้นฐานสำคัญของภาษา C#
พื้นฐาน ASP.NET Core
วงจรชีวิตของ request ใน ASP.NET Core
Configuration & Settings
วงจรชีวิตของแอปพลิเคชัน
Dependency Injection
Entity Framework Core
Minimal APIs
การพัฒนา Web API
Async ใน ASP.NET Core
Authentication & Authorization
HttpClient & Networking
การซีเรียลไลซ์ JSON
ฟีเจอร์ขั้นสูงของ C#
Clean Architecture
Logging, Monitoring & Observability
Unit Testing และ xUnit
การทดสอบแบบบูรณาการ
Docker & Containerization
การจัดการแพ็กเกจ NuGet
Memory Management & GC
การเขียนโปรแกรมแบบรีแอกทีฟ
Async/await และรูปแบบ
.NET Design Patterns
การเพิ่มประสิทธิภาพการทำงาน
ความปลอดภัยและ Best Practices
SignalR และเรียลไทม์
สถาปัตยกรรม Microservices
เชี่ยวชาญ .NET สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี