Entity Framework Code First Fluent Api: добавление индексов в столбцы

Я использую EF 4.2 CF и хочу создать индексы для определенных столбцов в моих объектах POCO.

В качестве примера, скажем, у нас есть этот класс сотрудников:

public class Employee
{
  public int EmployeeID { get; set; }
  public string EmployeeCode { get; set; }
  public string FirstName { get; set; }
  public string LastName { get; set; }
  public DateTime HireDate { get; set; }
}

Мы часто проводим поиск сотрудников по их EmployeeCode, и, поскольку сотрудников много, было бы неплохо проиндексировать их по соображениям производительности.

Можем ли мы сделать это с беглым API как-нибудь? или, возможно, аннотации данных?

Я знаю, что можно выполнить команды sql что-то вроде этого:

context.Database.ExecuteSqlCommand("CREATE INDEX IX_NAME ON ...");

Мне бы очень хотелось, чтобы избежать такого необработанного SQL.

я знаю, что этого не существует, но ищу что-то вроде этого:

class EmployeeConfiguration : EntityTypeConfiguration<Employee>
    {
        internal EmployeeConfiguration()
        {
            this.HasIndex(e => e.EmployeeCode)
                .HasIndex(e => e.FirstName)
                .HasIndex(e => e.LastName);
        }
    }

или возможно используяSystem.ComponentModel.DataAnnotations POCO может выглядеть так (опять же я знаю, что этого не существует):

public class Employee
{
  public int EmployeeID { get; set; }
  [Indexed]
  public string EmployeeCode { get; set; }
  [Indexed]
  public string FirstName { get; set; }
  [Indexed]
  public string LastName { get; set; }
  public DateTime HireDate { get; set; }
}

Кто-нибудь есть какие-либо идеи о том, как это сделать, или, если есть какие-либо планы по реализации способа сделать это, код в первую очередь?

ОБНОВИТЬ: Как уже упоминалось в ответе Роббы, эта функция реализована в EF версии 6.1.

Ответы на вопрос(14)

Ваш ответ на вопрос