Ответ 1
UPDATE: EntityFramework 6.1 представил атрибут [Index]
, который можно использовать для указания индекса в произвольном поле. Пример:
public class MessageModel
{
[Index(IsClustered = true, IsUnique = false)]
public long Timestamp { get; set; }
}
Для более старых версий Entity Framework я оставлю свой первоначальный ответ ниже:
К сожалению, EF не обеспечивает значительную поддержку индексов. Лучший способ приблизиться к этому зависит от типа миграций, которые вы делаете. Если вы не используете автоматическую миграцию и хотите добавить индекс в новую таблицу (т.е. У вас есть миграция), вы можете изменить сгенерированный оператор CreateTable в миграции для добавления индексов. Этот метод используется в одном из учебных пособий Entity Framework (поиск индекса для его поиска)
Если вы используете автоматические миграции (или таблица уже существует), вы все равно можете использовать старый стиль SQL для создания вашего индекса - сгенерировать перенос, а затем изменить свой код, чтобы включить простой старый оператор CREATE INDEX
.