Подтвердить что ты не робот

EF Code First - как установить идентификационное семя?

У меня есть класс сущности

public class Employee
{
    public long Id { get; set; }
    public string Name { get; set; }
}

Я установил поле Id в качестве первичного ключа с генерацией автоматического номера

modelBuilder.Entity<Employee>().HasKey(e => e.Id);
modelBuilder.Entity<Employee>().Property(e => e.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);

Но я хочу, чтобы Identity начинал с 10000 вместо 1, который является значением по умолчанию. Как я могу указать это в EF?

4b9b3361

Ответ 1

Если вы используете SQL Server, вы должны создать собственный инициализатор базы данных и вручную выполнить DBCC CHECKIDENT ('TableName', RESEED, NewSeedValue). Для создания и использования пользовательского инициализатора с пользовательскими командами SQL проверьте этот ответ.

Ответ 2

На основании ответа Ladislav Mrnka вы можете добавить это в свой файл миграции Up:

Sql("DBCC CHECKIDENT ('TableName', RESEED, NewSeedValue)");

Ответ 3

на основе @ehsan88 вы можете создать класс инициализации базы данных

 public class AccDatabaseInitializer : CreateDatabaseIfNotExists<YourContect>
    {
      protected override void Seed(YourContect context)
       {
          context.Database.ExecuteSqlCommand("DBCC CHECKIDENT ('TableName', RESEED, NewSeedValue)");
           context.SaveChanges();
       }
    }

спасибо