Entity Framework - Индекс
Индекс - это структура данных на диске, основанная на таблицах и представлениях. В большинстве случаев индексы делают поиск данных более быстрым и эффективным. Однако перегрузка таблицы или представления индексами может неприятно повлиять на производительность других операций, таких как вставки или обновления.
Индексирование - это новая функция в структуре сущностей, с помощью которой вы можете повысить производительность своего приложения 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 сможет рассуждать об уникальности столбца при работе с отношениями и т. Д. Эту функцию обычно называют поддержкой «уникальных ограничений».