实体框架自动增加起始值

时间:2014-05-31 08:09:34

标签: entity-framework auto-increment entity-framework-6

我有一个如下实体

[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列是自动增量列,但我需要将其起始值设置为1000.我该怎么做?

3 个答案:

答案 0 :(得分:8)

考虑创建自定义数据库初始化程序。 每次创建或重新创建数据库时都会调用它。

例如:

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

然后注册:

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

答案 1 :(得分:0)

无法通过属性或属性进行设置。但是,您可以对此事件运行命令:

您可以通过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)) }

答案 2 :(得分:-1)

context.Database.ExecuteSqlCommand("ALTER TABLE Version ALTER COLUMN DETAIL_ID IDENTITY (1000,1)");