Entity Framework - แนวทางแรกของฐานข้อมูล

ในบทนี้ให้เราเรียนรู้เกี่ยวกับการสร้างแบบจำลองข้อมูลเอนทิตีด้วยวิธี Database First

  • แนวทางแรกของฐานข้อมูลเป็นทางเลือกให้กับแนวทางของ Code First และ Model First สำหรับโมเดลข้อมูลเอนทิตี สร้างโค้ดโมเดล (คลาสคุณสมบัติ DbContext ฯลฯ ) จากฐานข้อมูลในโปรเจ็กต์และคลาสเหล่านั้นจะกลายเป็นลิงค์ระหว่างฐานข้อมูลและคอนโทรลเลอร์

  • Database First Approach สร้างกรอบเอนทิตีจากฐานข้อมูลที่มีอยู่ เราใช้ฟังก์ชันอื่น ๆ ทั้งหมดเช่นการซิงค์โมเดล / ฐานข้อมูลและการสร้างรหัสในลักษณะเดียวกับที่เราใช้ในแนวทาง Model First

ลองยกตัวอย่างง่ายๆ เรามีฐานข้อมูลอยู่แล้วซึ่งมี 3 ตารางดังที่แสดงในภาพต่อไปนี้

Step 1 - มาสร้างโปรเจ็กต์คอนโซลใหม่ด้วยชื่อ DatabaseFirstDemo

Step 2 - ในการสร้างโมเดลให้คลิกขวาที่โปรเจ็กต์คอนโซลของคุณในตัวสำรวจโซลูชันก่อนแล้วเลือกเพิ่ม→รายการใหม่ ...

Step 3 - เลือก ADO.NET Entity Data Model จากบานหน้าต่างตรงกลางและป้อนชื่อ DatabaseFirstModel ในฟิลด์ Name

Step 4 - คลิกปุ่มเพิ่มซึ่งจะเปิดกล่องโต้ตอบตัวช่วยสร้างโมเดลข้อมูลเอนทิตี

Step 5 - เลือก EF Designer จากฐานข้อมูลและคลิกปุ่มถัดไป

Step 6 - เลือกฐานข้อมูลที่มีอยู่แล้วคลิกถัดไป

Step 7 - เลือก Entity Framework 6.x แล้วคลิกถัดไป

Step 8 - เลือกตารางทั้งหมดมุมมองและขั้นตอนการจัดเก็บที่คุณต้องการรวมแล้วคลิกเสร็จสิ้น

คุณจะเห็นว่าโมเดลเอนทิตีและคลาส POCO ถูกสร้างขึ้นจากฐานข้อมูล

ตอนนี้ให้เราดึงนักเรียนทั้งหมดจากฐานข้อมูลโดยเขียนรหัสต่อไปนี้ในไฟล์ program.cs

using System;
using System.Linq;

namespace DatabaseFirstDemo {

   class Program {

      static void Main(string[] args) {

         using (var db = new UniContextEntities()) {

            var query = from b in db.Students
               orderby b.FirstMidName select b;

            Console.WriteLine("All All student in the database:");

            foreach (var item in query) {
               Console.WriteLine(item.FirstMidName +" "+ item.LastName);
            }

            Console.WriteLine("Press any key to exit...");
            Console.ReadKey();
         }
      }
   }
}

เมื่อโปรแกรมข้างต้นทำงานคุณจะได้รับผลลัพธ์ต่อไปนี้ -

All student in the database:
Ali Khan
Arturo   finand
Bill Gates
Carson Alexander
Gytis Barzdukas
Laura Norman
Meredith Alonso
Nino Olivetto
Peggy Justice
Yan Li
Press any key to exit...

เมื่อโปรแกรมด้านบนทำงานคุณจะเห็นชื่อนักเรียนทั้งหมดที่เคยป้อนไว้ในฐานข้อมูล

เราขอแนะนำให้คุณดำเนินการตามตัวอย่างข้างต้นในลักษณะทีละขั้นตอนเพื่อความเข้าใจที่ดีขึ้น