Я создаю модель с 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 выполнять свою работу только при создании БД?