Share via


Secuencias

Nota:

Las secuencias son una característica que normalmente solo admite las bases de datos relacionales. Si usa una base de datos no relacional como Azure Cosmos DB, consulte la documentación de la base de datos sobre cómo generar valores únicos.

Una secuencia genera valores numéricos únicos y secuenciales en la base de datos. Las secuencias no están asociadas a una tabla específica y se pueden configurar varias tablas para que obtengan valores de la misma secuencia.

Uso básico

Puede configurar una secuencia en el modelo y, a continuación, usarla para generar valores para las propiedades:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.HasSequence<int>("OrderNumbers");

    modelBuilder.Entity<Order>()
        .Property(o => o.OrderNo)
        .HasDefaultValueSql("NEXT VALUE FOR OrderNumbers");
}

Tenga en cuenta que el SQL específico usado para generar un valor a partir de una secuencia es específico de la base de datos. El ejemplo anterior funciona en SQL Server, pero producirá un error en otras bases de datos. Consulte la documentación de la base de datos específica para obtener más información.

Configuración de las opciones de secuencia

También puede configurar aspectos adicionales de la secuencia, como su esquema, valor inicial, incremento, etc.:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.HasSequence<int>("OrderNumbers", schema: "shared")
        .StartsAt(1000)
        .IncrementsBy(5);
}