Entity Framework Code Primeira API fluente: adicionando índices às colunas
Estou executando o EF 4.2 CF e quero criar índices em determinadas colunas nos meus objetos POC
Como exemplo, digamos que temos essa classe de funcionários:
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; }
}
Frequentemente pesquisamos funcionários pelo código do funcionário e, como existem muitos funcionários, seria bom indexá-lo por razões de desempenho.
Podemos fazer isso com API fluente de alguma forma? ou talvez anotações de dados?
Eu sei que é possível executar comandos sql algo como isto:
context.Database.ExecuteSqlCommand("CREATE INDEX IX_NAME ON ...");
Gostaria muito de evitar SQL bruto assi
sei que isso não existe, mas estou procurando algo nesse sentido:
class EmployeeConfiguration : EntityTypeConfiguration<Employee>
{
internal EmployeeConfiguration()
{
this.HasIndex(e => e.EmployeeCode)
.HasIndex(e => e.FirstName)
.HasIndex(e => e.LastName);
}
}
ou talvez usandoSystem.ComponentModel.DataAnnotations
o POCO pode ficar assim (novamente eu sei que isso não existe):
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; }
}
Alguém tem alguma idéia de como fazer isso ou, se houver algum plano para implementar uma maneira de fazer isso, o código primeiro caminh
ATUALIZAR Conforme mencionado na resposta de Robba, esse recurso está implementado na EF versão 6.1