กรอบเอนทิตี - ดัชนี

ดัชนีคือโครงสร้างข้อมูลบนดิสก์ที่ยึดตามตารางและมุมมอง ดัชนีทำให้การดึงข้อมูลเร็วขึ้นและมีประสิทธิภาพในกรณีส่วนใหญ่ อย่างไรก็ตามการใส่ตารางหรือมุมมองที่มีดัชนีมากเกินไปอาจส่งผลต่อประสิทธิภาพของการดำเนินการอื่น ๆ เช่นการแทรกหรือการอัปเดต

  • การจัดทำดัชนีเป็นคุณลักษณะใหม่ในกรอบงานเอนทิตีที่คุณสามารถปรับปรุงประสิทธิภาพของแอปพลิเคชัน Code First ของคุณได้โดยลดเวลาที่ต้องใช้ในการสืบค้นข้อมูลจากฐานข้อมูล

  • คุณสามารถเพิ่มดัชนีในฐานข้อมูลของคุณโดยใช้ไฟล์ Index แอตทริบิวต์และแทนที่ค่าเริ่มต้น Unique และ Clustered การตั้งค่าเพื่อให้ได้ดัชนีที่เหมาะสมที่สุดกับสถานการณ์ของคุณ

มาดูโค้ดต่อไปนี้ซึ่งมีการเพิ่มแอตทริบิวต์ Index ในคลาส Course สำหรับ CourseID

public partial class Course {

   public Course() {
      this.Enrollments = new HashSet<Enrollment>();
   }

   [Index]
   public int CourseID { get; set; }
   public string Title { get; set; }
	
   public int Credits { get; set; }
   public byte[] VersionNo { get; set; }
	
   public virtual ICollection<Enrollment> Enrollments { get; set; }

}

คีย์ที่สร้างข้างต้นไม่ซ้ำกันไม่ใช่คลัสเตอร์ มีโอเวอร์โหลดที่สามารถลบล้างค่าเริ่มต้นเหล่านี้ได้ -

  • ในการสร้างดัชนีให้เป็นดัชนีแบบคลัสเตอร์คุณต้องระบุ IsClustered = true

  • ในทำนองเดียวกันคุณสามารถทำให้ดัชนีเป็นดัชนีเฉพาะได้โดยระบุ IsUnique = true

ลองดูรหัส C # ต่อไปนี้ที่ดัชนีเป็นคลัสเตอร์และไม่ซ้ำกัน

public partial class Course {

   public Course() {
      this.Enrollments = new HashSet<Enrollment>();
   }

   [Index(IsClustered = true, IsUnique = true)]
   public int CourseID { get; set; }
   public string Title { get; set; }
	
   public int Credits { get; set; }
   public byte[] VersionNo { get; set; }
	
   public virtual ICollection<Enrollment> Enrollments { get; set; }
}

สามารถใช้แอตทริบิวต์ดัชนีเพื่อสร้างดัชนีเฉพาะในฐานข้อมูล อย่างไรก็ตามนี่ไม่ได้หมายความว่า EF จะสามารถให้เหตุผลเกี่ยวกับความเป็นเอกลักษณ์ของคอลัมน์ได้เมื่อจัดการกับความสัมพันธ์ ฯลฯ โดยปกติแล้วคุณลักษณะนี้จะเรียกว่าการสนับสนุนสำหรับ“ ข้อ จำกัด เฉพาะ”