Kerangka Kerja Entitas - Indeks

Indeks adalah struktur data di disk yang didasarkan pada tabel dan tampilan. Indeks membuat pengambilan data lebih cepat dan efisien, dalam banyak kasus. Namun, membebani tabel atau tampilan dengan indeks secara tidak menyenangkan dapat memengaruhi kinerja operasi lain seperti penyisipan atau pembaruan.

  • Pengindeksan adalah fitur baru dalam framework entitas tempat Anda dapat meningkatkan performa aplikasi Code First dengan mengurangi waktu yang diperlukan untuk membuat kueri data dari database.

  • Anda dapat menambahkan indeks ke database Anda menggunakan Index atribut, dan mengganti default Unique dan Clustered pengaturan untuk mendapatkan indeks yang paling sesuai dengan skenario Anda.

Mari kita lihat kode berikut di mana atribut Indeks ditambahkan di kelas Kursus untuk 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; }

}

Kunci yang dibuat di atas tidak unik, tidak berkerumun. Ada kelebihan beban yang tersedia untuk menggantikan default ini -

  • Untuk membuat indeks menjadi indeks Clustered, Anda perlu menentukan IsClustered = true

  • Demikian pula, Anda juga dapat membuat indeks menjadi indeks unik dengan menentukan IsUnique = true

Mari kita lihat kode C # berikut di mana indeks dikelompokkan dan unik.

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; }
}

Atribut indeks dapat digunakan untuk membuat indeks unik dalam database. Namun, ini tidak berarti bahwa EF akan dapat menjelaskan tentang keunikan kolom saat menangani hubungan, dll. Fitur ini biasanya disebut sebagai dukungan untuk "batasan unik".