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