Sequences

Anmärkning

Sekvenser är en funktion som vanligtvis endast stöds av relationsdatabaser. Om du använder en icke-relationell databas, till exempel Azure Cosmos DB, kontrollerar du databasdokumentationen om hur du genererar unika värden.

En sekvens genererar unika, sekventiella numeriska värden i databasen. Sekvenser är inte associerade med en specifik tabell och flera tabeller kan konfigureras för att hämta värden från samma sekvens.

Grundläggande användning

Du kan konfigurera en sekvens i modellen och sedan använda den för att generera värden för egenskaper:

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

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

Observera att den specifika SQL som används för att generera ett värde från en sekvens är databasspecifik. exemplet ovan fungerar på SQL Server men misslyckas på andra databaser. Mer information finns i dokumentationen för din specifika databas.

Konfigurera sekvensinställningar

Du kan också konfigurera ytterligare aspekter av sekvensen, till exempel dess schema, startvärde, ökning osv.:

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