EF Codefirst 方法“afterModelCreateating”是否存在
本文关键字:是否 存在 afterModelCreateating Codefirst 方法 EF | 更新日期: 2023-09-27 18:35:08
我对EF CodeFirst方法有问题。我需要在创建数据库后创建索引。但是调用方法OnModelCreation太早了(数据库尚不存在)。有没有"后期模型创建"方法?
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
this.Database.ExecuteSqlCommand(String.Format("CREATE INDEX IX_{0} ON {1} ({0})", "Text", "Table"));
}
谢谢
在 4.3 之前的 EF 版本中,应配置数据库初始值设定项
System.Data.Entity.Database.SetInitializer<YourDbContext>(new YourDbInitializer());
初始值设定项类可能如下所示:
public class YourDbInitializer : DropCreateDatabaseIfModelChanges<YourDbContext>
{
protected override void Seed(DiorContextBase context)
{
context.Database.ExecuteSqlCommand(
"CREATE UNIQUE NONCLUSTERED INDEX Username_Unique " +
"ON dbo.Users(username)");
}
}
在最新的 EF 版本中,使用迁移 http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-code-based-migrations-walkthrough.aspx