通过


序列

注释

序列是通常仅关系数据库支持的功能。 如果使用的是非关系数据库(如 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);
}