Una sequence è un generatore di numeri consecutivi univoci generato direttamente dal server. SQL Server supporta le sequence a partire dalla versione 2012 ed Entity Framework Core supporta le sequence sin dalla prima versione.
Per mappare una sequence nel modello il metodo da usare è HasSequence che accetta in input il nome della sequence. Se invece vogliamo associare direttamente la sequence a una proprietà di una entity, dobbiamo prima recuperare la proprietà col metodo Property e poi usare il metodo HasDefaultValueSql passandogli il comando SQL per recuperare il prossimo valore dalla sequence. In questo modo Entity Framework userà la sequence per popolare il valore del campo.
class MyContext : DbContext { public DbSet<Person> People { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.HasSequence<int>("MySequence"); modelBuilder.Entity<Person>() .Property(o => o.SequentialNumber) .HasDefaultValueSql("NEXT VALUE FOR MySequence"); } } public class Person { public int Id { get; set; } public int SequentialNumber{ get; set; } }
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creazione di componenti personalizzati in React.js con Tailwind CSS
Eseguire query manipolando liste di tipi semplici con Entity Framework Core
Miglioramenti nell'accessibilità con Angular CDK
Routing statico e PreRendering in una Blazor Web App
Filtrare e rimuovere gli elementi dalla cache del browser tramite le API JavaScript
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Limitare le richieste lato server con l'interactive routing di Blazor 8
Assegnare un valore di default a un parametro di una lambda in C#
Utilizzare domini personalizzati gestiti automaticamente con Azure Container Apps
Eseguire una query su SQL Azure tramite un workflow di GitHub
Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
Installare le Web App site extension tramite una pipeline di Azure DevOps