我正在使用EF4.1 CodeFirst创建一个模型。我用:
Database.SetInitializer(Of dbModel.dbDB2Data)(New DropCreateDatabaseIfModelChanges(Of dbModel.dbDB2Data))
和
MyBase.Database.ExecuteSqlCommand("CREATE INDEX IX_EXPLAN ON DBO.EXPLANS (PROGNAME, BIND_TIME, ACCESSNAME)")
创建索引。问题是,如果我将ExecuteSqlCommand放在DbContext New子例程中,它会在每次启动应用程序时执行,即使数据库已经存在,然后由于索引已经存在而发生错误。如果我把它放在OnModelCreating事件中,我会收到以下错误:
The context cannot be used while the model is being created.
那么,只有在创建数据库时,我怎么能让ExecuteSqlCommand做它的事?