注
シーケンスは、通常、リレーショナル データベースでのみサポートされる機能です。 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);
}
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET