我有一个如下实体
[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.我该怎么做?
答案 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)");