การกำหนดให้ Entity framework สามารถ Query Views Table บน SQL Server แบบง่ายๆ

oum_nomercy
Arcadia Software Development
2 min readJan 5, 2020

ในการพัฒนา Application โดยใช้ Entity Framework (EF) ในการจัดการข้อมูลบน Database นั้น Developer หลายๆ ท่านมักจะประสบปัญหาเรื่อง performance ของการ query ซึ่งเป็นผลมาจากการ join table หลายๆ table เพื่อที่จะนำมาซึ่งผลลัพธ์ของข้อมูลที่ถูกต้องสมบูรณ์แต่ก็ต้องแลกมาด้วยการใช้ resource ในการแปลง query statement เป็น object อย่างที่ไม่สามารถหลีกเลี่ยงได้ จะดีแค่ไหนที่เราจะสามารถทำการ join หรือ process ข้อมูลได้ตั้งแต่บน database เลยแล้วทำการ query ขึ้นมาใช้งานได้ทันทีโดยไม่ต้อง join ซ้ำอีก ในบทความนี้จะกล่าวถึงวิธีการใช้ EF ในการเรียกใช้งาน view table บน database

  1. อันดับแรกทำการ create view ก่อน ในบทความนี้จะใช้ sample database Adventurework2017 และจะสร้าง view ชื่อว่า View_SalesInfo ซึ่งทำการ join มาจาก table [Person].[Person], [Sales].[SalesPerson] และ [Sales].[Store] ดังรูป

2. ทำการสร้าง class View_SalesInfo

3. ขั้นตอนสุดท้ายทำการสร้าง DBQuery ในส่วนของ DBContext สำหรับ map class กับ view

เพียงเท่านี้เราก็จะสามารถ Query view ได้แล้วโดยผ่าน function ของ DBContext ได้เลยดังรูป

ซึ่งการใช้ view นี้จะเป็นการใช้ resource บน database ซึางจะให้ performance ที่ดีกว่าการใช้ query ผ่าน LINQ เพื่อที่จะนำมา join กันในภายหลัง อีกทั้งเวลาจะเพิ่มเงื่อนไขแก้ไขหรือปรับรูปแบบการ join ก็สามารถแก้ไขจาก view บน database ได้เลยโดยไม่ต้องกลับมาแก้ไขใน code

--

--