我正在用EF4.1 CodeFirst創建一個模型。我使用:在EF4.1中,如何才能在創建數據庫時創建索引?
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子例程中,它會在每次啓動應用程序時執行,即使DB已經存在,然後由於索引已經存在而發生錯誤。如果我把它放在OnModelCreating事件中,我得到以下錯誤:
The context cannot be used while the model is being created.
所以,我怎麼能有ExecuteSqlCommand做它的事正在創建數據庫,只有當?
這是不祥的 - 發佈5分鐘後最新投票的問題。如果它那麼好,這意味着沒有好的答案? – GilShalit