SekwencjeSequences

Uwaga

Konfiguracja opisana w tej sekcji ma zastosowanie do relacyjnych baz danych w zasadzie.The configuration in this section is applicable to relational databases in general. Metody rozszerzenia pokazane staną się dostępne po zainstalowaniu dostawcy relacyjnej bazy danych (z powodu udostępnionego 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 sekwencyjnych wartości liczbowe w bazie danych.A sequence generates a sequential numeric values in the database. Sekwencji nie są skojarzone z określonej tabeli.Sequences are not associated with a specific table.

KonwencjeConventions

Według Konwencji sekwencji nie są wprowadzane w modelu.By convention, sequences are not introduced in to the model.

Adnotacji danychData Annotations

Nie można skonfigurować sekwencji za pomocą adnotacji danych.You can not configure a sequence using Data Annotations.

Interfejsu API FluentFluent API

Interfejsu API Fluent służy do tworzenia 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 aspekt sekwencji, takie jak schemat, 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 można użyć jej 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; }
}