Entity Framework - indeks
Indeks to struktura danych na dysku oparta na tabelach i widokach. W większości przypadków indeksy sprawiają, że pobieranie danych jest szybsze i wydajniejsze. Jednak przeciążenie tabeli lub widoku indeksami może niekorzystnie wpłynąć na wydajność innych operacji, takich jak wstawianie lub aktualizacje.
- Indeksowanie to nowa funkcja w strukturze jednostek, w której można poprawić wydajność aplikacji Code First, skracając czas wymagany do wykonywania zapytań dotyczących danych z bazy danych. 
- Możesz dodawać indeksy do bazy danych za pomocą rozszerzenia Index atrybut i nadpisz wartość domyślną Unique i Clustered ustawienia, aby uzyskać indeks najlepiej dostosowany do Twojego scenariusza. 
Przyjrzyjmy się poniższemu kodowi, w którym atrybut Index jest dodawany w klasie Course dla 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; }
}Klucz utworzony powyżej jest nieunikalny i nieklastrowy. Dostępne są przeciążenia, które mogą zastąpić te wartości domyślne -
- Aby indeks był indeksem klastrowym, musisz określić IsClustered = true 
- Podobnie można również uczynić indeks indeksem unikatowym, określając IsUnique = true 
Przyjrzyjmy się poniższemu kodowi C #, w którym indeks jest klastrowy i unikalny.
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; }
}Atrybut indeksu może służyć do tworzenia unikatowego indeksu w bazie danych. Nie oznacza to jednak, że EF będzie w stanie wnioskować o wyjątkowości kolumny, gdy ma do czynienia z relacjami itp. Ta cecha jest zwykle określana jako obsługa „unikalnych ograniczeń”.