Ho un'entità come segue
[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; }
}
La colonna SO Id è la colonna di incremento automatico, ma ho bisogno di impostare il suo valore iniziale su 1000. Come posso farlo?
Prendi in considerazione la possibilità di creare un inizializzatore del database personalizzato. Verrà chiamato ogni volta che il database viene creato o ricreato.
Per esempio:
public class MyInitializer : DropCreateDatabaseIfModelChanges<TContext> where TContext : DbContext
{
protected override void Seed(TContext context)
{
context.Database.ExecuteSqlCommand("DBCC CHECKIDENT('MyTable', RESEED, 1000);");
}
}
Quindi registralo:
protected void Application_Start()
{
Database.SetInitializer<MyContext>(new MyInitializer());
}
Non c'è modo di impostare proprietà o attributi. Tuttavia, è possibile eseguire il comando su questo evento:
Probabilmente è possibile impostare tramite 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)) }