私はEF4.1 CodeFirstでモデルを作成しています。私が使用します。EF4.1では、DBの作成時にのみインデックスを作成できますか?
Database.SetInitializer(Of dbModel.dbDB2Data)(New DropCreateDatabaseIfModelChanges(Of dbModel.dbDB2Data))
そして
MyBase.Database.ExecuteSqlCommand("CREATE INDEX IX_EXPLAN ON DBO.EXPLANS (PROGNAME, BIND_TIME, ACCESSNAME)")
をインデックスを作成します。問題は、DbContextの新しいサブルーチンにExecuteSqlCommandを置くと、DBがすでに存在していてもアプリケーションが起動されるたびに実行され、インデックスが既に存在するためにエラーが発生するということです。私はOnModelCreatingイベントに入れた場合、私は次のエラーを取得する:
The context cannot be used while the model is being created.
それでは、どのように私はExecuteSqlCommandを持つことができるDBが作成されているだけにそのことを行いますか?
これは不吉なことです。質問が投稿されてから5分後に投票されました。それがとても良いのであれば、いい答えがないということですか? – GilShalit