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
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Dallo sviluppo locale ad Azure con .NET Aspire
Usare la libreria PredicateBuilder per eseguire query tramite Entity Framework che usano or su più campi
Usare la parola chiave field per semplificare la scrittura di proprietà in C#
Gestione dei prompt file a livello di organizzazione aziendale in GitHub
Utilizzare il top layer in HTML
Mischiare codice server side e client side in una query LINQ con Entity Framework
Gestire gli errori nelle Promise JavaScript con try()
Mappare una complex property di una entity su un campo JSON
Ottimizzare gli indici con Automatic Index Compaction in Azure SQL Database
Utilizzare ExecuteUpdate per aggiornare colonne JSON in Entity Framework
Creare espressioni riutilizzabili nelle query LINQ per Entity Framework
Controllare la velocità di spostamento su una pagina HTML


