序列
注意
時序是一項功能,通常只有關係資料庫才支援。 如果您使用非關係資料庫,例如 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);
}