Je suis en cours d'exécution EF 4.2 FC et de l'envie de créer des index sur certaines colonnes dans mes objets POCO.
Un exemple permet de dire que nous avons cette classe d'employés:
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; }
}
Nous avons souvent de faire des recherches pour les salariés, en leur EmployeeCode et depuis il y a beaucoup de salariés, il serait bon d'avoir indexé pour des raisons de performances.
Peut-on le faire avec l'api fluent en quelque sorte? ou peut-être les données les annotations?
Je sais qu'il est possible d'exécuter des commandes sql à quelque chose comme ceci:
context.Database.ExecuteSqlCommand("CREATE INDEX IX_NAME ON ...");
Je voudrais bien éviter de SQL brut comme ça.
je sais que cela n'existe pas, mais la recherche de quelque chose le long de ces lignes:
class EmployeeConfiguration : EntityTypeConfiguration<Employee>
{
internal EmployeeConfiguration()
{
this.HasIndex(e => e.EmployeeCode)
.HasIndex(e => e.FirstName)
.HasIndex(e => e.LastName);
}
}
ou peut-être l'aide d' System.ComponentModel.DataAnnotations
le POCO pourrait ressembler à ceci (encore une fois je sais que cela n'existe pas):
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; }
}
N'importe qui ont des idées sur la façon de le faire, ou si il y a des plans pour mettre en place un moyen pour ce faire, le premier code?
Mise à JOUR: Comme mentionné dans la réponse par Robba, cette fonctionnalité est implémentée en EF version 6.1