Search code examples
entity-frameworkauto-incremententity-framework-6

Entity Framework auto increment with starting value


I have a entity as follows

[Table("ESS_POS_SE_VERSION")]
public class Version
{
    [Key, Column("DETAIL_ID"), DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    [Column("DETAIL_TITILE")]
    public string DetailKey { get; set; }

    [Column("DETAIL")]
    public string Detail { get; set; }
}

SO Id column is auto increment column, but I need to set its starting value to 1000. How can I do it?


Solution

  • Consider creating a custom database initializer. It will be called each time your database is created or recreated.

    For example:

    public class MyInitializer : DropCreateDatabaseIfModelChanges<TContext> where TContext : DbContext
    {
        protected override void Seed(TContext context)
        {
            context.Database.ExecuteSqlCommand("DBCC CHECKIDENT('MyTable', RESEED, 1000);");
        }
    }
    

    Then register it:

    protected void Application_Start()
    {
        Database.SetInitializer<MyContext>(new MyInitializer());
    }