Последовательности

Примечание.

Последовательности обычно поддерживаются только реляционными базами данных. Если вы используете нереляционную базу данных, например Azure Cosmos DB, проверка документацию по созданию уникальных значений.

Последовательность создает уникальные последовательные числовые значения в базе данных. Последовательности не связаны с определенной таблицей, и можно настроить несколько таблиц для рисования значений из одной последовательности.

Базовое использование

Вы можете настроить последовательность в модели, а затем использовать ее для создания значений для свойств:

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

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

Обратите внимание, что конкретный SQL, используемый для создания значения из последовательности, зависит от базы данных; Приведенный выше пример работает на SQL Server, но завершится сбоем в других базах данных. Дополнительные сведения см. в документации по конкретной базе данных.

Настройка параметров последовательности

Можно также настроить дополнительные аспекты последовательности, такие как схема, начальное значение, добавочное и т. д.:

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