Entity Framework auto increment with starting value

后端 未结 3 410
刺人心
刺人心 2020-12-17 05:07

I have a entity as follows

[Table(\"ESS_POS_SE_VERSION\")]
public class Version
{
    [Key, Column(\"DETAIL_ID\"), DatabaseGenerated(DatabaseGeneratedOption.         


        
相关标签:
3条回答
  • 2020-12-17 05:21

    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());
    }
    
    0 讨论(0)
  • 2020-12-17 05:29

    There is no way to set through Property or Attribute. However, you can run the command on this event:

    Probably you can set through Alter: ALTER TABLE [MyTable] ALTER COLUMN [IdentityColumn] IDENTITY (1000,1).

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
        { context.Database.ExecuteSqlCommand(ALTER TABLE [MyTable] ALTER COLUMN [IdentityColumn] IDENTITY (1000,1)) }
    
    0 讨论(0)
  • 2020-12-17 05:48
    context.Database.ExecuteSqlCommand("ALTER TABLE Version ALTER COLUMN DETAIL_ID IDENTITY (1000,1)");
    
    0 讨论(0)
提交回复
热议问题