Utilizzare le sequence di SQL Server in Entity Framework Core

di Stefano Mostarda, in LINQ, Entity Framework,

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

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