Séquences

Remarque

Les séquences sont une fonctionnalité normalement prise en charge uniquement par des bases de données relationnelles. Si vous utilisez une base de données non relationnelle telle que Azure Cosmos DB, vérifiez la documentation de votre base de données sur la génération de valeurs uniques.

Une séquence génère des valeurs numériques séquentielles et uniques dans la base de données. Les séquences ne sont pas associées à une table spécifique et plusieurs tables peuvent être configurées pour extraire des valeurs à partir de la même séquence.

Utilisation de base

Vous pouvez configurer une séquence dans le modèle, puis l’utiliser pour générer des valeurs pour des propriétés :

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

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

Notez que le SQL spécifique utilisé pour générer une valeur à partir d’une séquence est spécifique à une base de données. L’exemple ci-dessus fonctionne sur SQL Server, mais échoue sur d’autres bases de données. Pour obtenir plus d’informations, consultez la documentation de votre base de données spécifique.

Configurer des paramètres de séquence

Vous pouvez également configurer d’autres aspects de la séquence, tels que son schéma, sa valeur de début, son incrément. etc. :

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