Aggiungere un indice a una proprietà di un modello usando le API di mapping di Entity Framework

di Stefano Mostarda, in LINQ, Entity Framework,

Nello script #361 abbiamo visto come aggiungendo l'attributo Index su una proprietà di una classe mappata con Entity Framework possiamo specificare che questa proprietà faccia parte di un indice sul database. Spesso non si vuole utilizzare l'attributo ma si preferisce usare il codice di mapping ma questo non supporta nativamente l'indexing delle proprietà.
Per superare questa limitazione possiamo ricorrere al seguente codice.

modelBuilder 
  .Entity<Person>() 
  .Property(t => t.BirthDate) 
  .HasColumnAnnotation("Index", 
    new IndexAnnotation(new IndexAttribute()));

In questo esempio recuperiamo la proprieta BirthDate della classe Person e usiamo il metodo HasColumnAnnotation per aggiungere l'indice.
Il metodo HasColumnAnnotation accetta in input il nome dell'indice e un oggetto IndexAnnotation. Questo oggetto a sua volta accetta nel costruttore un parametro di tipo IndexAttribute all'interno del quale specifichiamo le proprietà dell'indice (questa classe è la stessa che usiamo quando marchiamo una proprietà con l'attributo Index).

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi