Entity Framework - Dizin

Bir dizin, tablolara ve görünümlere dayanan bir disk üzerindeki veri yapısıdır. Dizinler, çoğu durumda verilerin daha hızlı ve verimli bir şekilde alınmasını sağlar. Ancak, bir tablonun veya görünümün dizinlerle aşırı yüklenmesi, eklemeler veya güncellemeler gibi diğer işlemlerin performansını istenmeyen bir şekilde etkileyebilir.

  • Dizin oluşturma, veritabanından verileri sorgulamak için gereken süreyi azaltarak Code First uygulamanızın performansını artırabileceğiniz varlık çerçevesindeki yeni özelliktir.

  • Veritabanınıza dizinler ekleyebilirsiniz. Index öznitelik ve varsayılanı geçersiz kılın Unique ve Clustered Senaryonuza en uygun dizini almak için ayarlar.

CourseID için Course sınıfına Index niteliğinin eklendiği aşağıdaki koda bir göz atalım.

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

}

Yukarıda oluşturulan anahtar benzersiz değildir, kümelenmemiştir. Bu varsayılanları geçersiz kılmak için aşırı yükler var -

  • Bir dizini Kümelenmiş bir dizin yapmak için IsClustered = true belirtmeniz gerekir.

  • Benzer şekilde, IsUnique = true belirterek bir dizini benzersiz bir dizin yapabilirsiniz.

Bir dizinin kümelendiği ve benzersiz olduğu aşağıdaki C # koduna bir göz atalım.

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

Dizin niteliği, veritabanında benzersiz bir dizin oluşturmak için kullanılabilir. Bununla birlikte, bu, EF'in ilişkiler vb. İle uğraşırken sütunun benzersizliği hakkında akıl yürütebileceği anlamına gelmez. Bu özellik genellikle "benzersiz kısıtlamalar" desteği olarak adlandırılır.