共用方式為


序列

備註

序列通常僅由關聯式資料庫支援的功能。 如果你使用的是非關聯式資料庫,例如 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);
}