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

Примечание

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

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

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

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

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

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

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

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

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

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