EntityFrameworkCore Автоинкремент ключевого столбца от определенного значения - PullRequest
3 голосов
/ 07 мая 2019

Простой класс с автоинкрементным столбцом Key

public class SomeClass
{
    [Key]
    public long SomeClassId { get; set;}
}

Обычно SomeClassId запускается и автоматически увеличивается с 1. Есть ли способ заставить идентификатор начинаться с определенногочисло, скажем 10001?

Было предложено здесь выполнить команду CHECKIDENT через Sql().Но мне интересно, есть ли другие способы сделать это?

Спасибо!

1 Ответ

4 голосов
/ 07 мая 2019

Да, вы можете использовать Fluent API. Пример кода

class MyContext : DbContext
{
    public DbSet<SomeClass> sample{ get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.HasSequence<int>("sampleNumber", schema: "shared")
            .StartsAt(10001)
            .IncrementsBy(1);  
        modelBuilder.Entity<SomeClass>()
        .Property(o => o.SomeClassId)
        .HasDefaultValueSql("NEXT VALUE FOR shared.sampleNumber");
    }
    }
...