SekwencjeSequences

Uwaga

Ogólnie rzecz biorąc jest odpowiednie dla relacyjnych baz danych konfiguracji w tej sekcji.The configuration in this section is applicable to relational databases in general. Metody rozszerzenia, pokazane tutaj staną się dostępne po zainstalowaniu dostawcy relacyjnej bazy danych (z powodu udostępnionej Microsoft.EntityFrameworkCore.Relational pakietu).The extension methods shown here will become available when you install a relational database provider (due to the shared Microsoft.EntityFrameworkCore.Relational package).

Sekwencja generuje kolejnych wartości liczbowe w bazie danych.A sequence generates a sequential numeric values in the database. Sekwencje nie są skojarzone z określonej tabeli.Sequences are not associated with a specific table.

KonwencjeConventions

Zgodnie z Konwencją sekwencji nie są wprowadzane w modelu.By convention, sequences are not introduced in to the model.

Adnotacje danychData Annotations

Nie można skonfigurować przy użyciu adnotacji danych sekwencji.You can not configure a sequence using Data Annotations.

Interfejs Fluent APIFluent API

Interfejs Fluent API umożliwia tworzenie sekwencji w modelu.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; }
}

Można również skonfigurować dodatkowe aspekty sekwencji, takie jak jego schematu, wartość początkową i przyrostu.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);
    }
}

Gdy wprowadzono sekwencji służy do generowania wartości właściwości w modelu.Once a sequence is introduced, you can use it to generate values for properties in your model. Na przykład, można użyć wartości domyślne do wstawienia następnej wartości z sekwencji.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; }
}