SequenzenSequences

Hinweis

Die Konfiguration in diesem Abschnitt gilt allgemein für relationale Datenbanken.The configuration in this section is applicable to relational databases in general. Die hier gezeigten Erweiterungsmethoden werden verfügbar, wenn Sie einen relationalen Datenbankanbieter installieren (aufgrund des gemeinsam genutzten Pakets Microsoft.EntityFrameworkCore.Relational).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 sind 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

Sie können die Fluent-API verwenden, 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 Aspekt der Sequenz, z. B. Schemas, Start-Wert, und erhöhen 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);
    }
}

Nach der Einführung einer Sequenz ist, können Sie es verwenden, um Werte für Eigenschaften in Ihrem 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; }
}