的EntityFramework 6DropCreateDatabaseIfModelChanges導致自動遷移,即使我沒有啓用他們
我試圖診斷是發生在2個獨立的服務,一個安裝使用相同的上下文後開始在同一時間賽跑條件。
在這兩種情況下,Context都在使用DropCreateDatabaseIfModelChanges初始值設定項。
當翻翻當比賽條件發生堆棧跟蹤,異常通過DbMigrator痕跡:
at System.Data.Entity.Migrations.DbMigrator.ExecuteStatements(IEnumerable`1 migrationStatements, DbTransaction existingTransaction)
at System.Data.Entity.Migrations.DbMigrator.ExecuteStatements(IEnumerable`1 migrationStatements)
at System.Data.Entity.Migrations.DbMigrator.ExecuteOperations(String migrationId, XDocument targetModel, IEnumerable`1 operations, IEnumerable`1 systemOperations, Boolean downgrading, Boolean auto)
at System.Data.Entity.Migrations.DbMigrator.AutoMigrate(String migrationId, VersionedModel sourceModel, VersionedModel targetModel, Boolean downgrading)
at System.Data.Entity.Migrations.DbMigrator.Upgrade(IEnumerable`1 pendingMigrations, String targetMigrationId, String lastMigrationId)
at System.Data.Entity.Migrations.DbMigrator.UpdateInternal(String targetMigration)
at System.Data.Entity.Migrations.DbMigrator.<>c__DisplayClassc.<Update>b__b()
at System.Data.Entity.Migrations.DbMigrator.EnsureDatabaseExists(Action mustSucceedToKeepDatabase)
at System.Data.Entity.Migrations.DbMigrator.Update(String targetMigration)
at System.Data.Entity.Internal.DatabaseCreator.CreateDatabase(InternalContext internalContext, Func`3 createMigrator, ObjectContext objectContext)
at System.Data.Entity.Internal.InternalContext.CreateDatabase(ObjectContext objectContext, DatabaseExistenceState existenceState)
at System.Data.Entity.Database.Create(DatabaseExistenceState existenceState)
at System.Data.Entity.DropCreateDatabaseIfModelChanges`1.InitializeDatabase(TContext context)
我還沒有啓用自動遷移,而且沒有出現,他們在基礎啓用這些服務的項目(沒有Migrations文件夾,並且沒有代碼引用來啓用自動遷移)。是否有另一種方法來檢查它們是否已啓用?我知道他們正在發生,因爲上下文所引用的數據庫有一個__MigrationHistory文件夾。
它們是否默認啓用?爲什麼遷移發生?
您是否驗證過它們未在您的web.config文件中打開? – Chad
沒有web.config。它們沒有在app.config中打開。 – SmashCode