SequenzenSequences

Hinweis

Die Konfiguration in diesem Abschnitt ist im Allgemeinen gilt für relationale Datenbanken.The configuration in this section is applicable to relational databases in general. Die Erweiterungsmethoden, die hier gezeigten werden verfügbar, wenn Sie einen relationale Datenbank-Anbieter installieren (aufgrund der freigegebenen Microsoft.EntityFrameworkCore.Relational Paket).The extension methods shown here will become available when you install a relational database provider (due to the shared Microsoft.EntityFrameworkCore.Relational package).

Eine Sequenz generiert eine fortlaufende numerische Werte in der Datenbank.A sequence generates a sequential numeric values in the database. Sequenzen werden nicht mit einer bestimmten Tabelle verknüpft.Sequences are not associated with a specific table.

KonventionenConventions

Gemäß der Konvention werden Sequenzen nicht in dem Modell eingeführt.By convention, sequences are not introduced in to the model.

DatenanmerkungenData Annotations

Sie können eine Sequenz, die mithilfe von Datenanmerkungen nicht konfigurieren.You can not configure a sequence using Data Annotations.

Fluent-APIFluent API

Die Fluent-API können Sie um eine Sequenz im Modell zu erstellen.You can use the Fluent API to create a sequence in the model.

class MyContext : DbContext
{
    public DbSet<Order> Orders { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.HasSequence<int>("OrderNumbers");
    }
}

public class Order
{
    public int OrderId { get; set; }
    public int OrderNo { get; set; }
    public string Url { get; set; }
}

Sie können auch zusätzliche Aspekte der Sequenz, z. B. Schemas, Startwert und Inkrement konfigurieren.You can also configure additional aspect of the sequence, such as its schema, start value, and increment.

class MyContext : DbContext
{
    public DbSet<Order> Orders { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.HasSequence<int>("OrderNumbers", schema: "shared")
            .StartsAt(1000)
            .IncrementsBy(5);
    }
}

Sobald eine Sequenz eingeführt wird, können Sie es verwenden, um Werte für Eigenschaften im Modell zu generieren.Once a sequence is introduced, you can use it to generate values for properties in your model. Beispielsweise können Sie Standardwerte den nächsten Wert aus der Sequenz eingefügt.For example, you can use Default Values to insert the next value from the sequence.

class MyContext : DbContext
{
    public DbSet<Order> Orders { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.HasSequence<int>("OrderNumbers", schema: "shared")
            .StartsAt(1000)
            .IncrementsBy(5);

        modelBuilder.Entity<Order>()
            .Property(o => o.OrderNo)
            .HasDefaultValueSql("NEXT VALUE FOR shared.OrderNumbers");
    }
}

public class Order
{
    public int OrderId { get; set; }
    public int OrderNo { get; set; }
    public string Url { get; set; }
}