2015-07-01 67 views
0

我有一個項目,我介紹一些示例數據供我測試。但是,當我將該項目部署到預生產服務器以供客戶端測試時,他說當他刪除測試數據(由Seed方法引入)時,下次登錄到應用程序時,它仍然存在。有沒有辦法來防止這種情況? 我認爲Seed方法只是在成功更新數據庫時調用的,但它似乎在每次應用程序啓動時都在運行。如何刪除種子方法引入的種子數據?

回答

0

是否運行Seed()運行取決於您的數據庫初始值設定項。如果您正在使用MigrateDatabaseToLatestVersion,那麼它每次都會運行。您可以將部署的版本切換到每次不運行Seed方法的初始化程序,例如NullDatabaseInitializer。然後,當您需要應用更新時,您可以生成一個腳本(https://msdn.microsoft.com/en-us/data/jj591621.aspx#script)。

看到這裏的種子信息:http://blog.oneunicorn.com/2013/05/28/database-initializer-and-migrations-seed-methods/

+0

謝謝,我結束了徵求意見的種子meethod內容,我的客戶已經在數據庫中的某些數據。 –

0

這是一個有點誤導,我知道。種子方法將始終運行,所以是 - 您的數據將被重新創建。我所做的是避免這種情況,是在方法中進行一些簡單的檢查(例如,如果DbSet包含任何記錄 - >不種子)。

這不是100%可靠的,因爲如果所有數據都從預生產表中刪除,它仍然會與測試數據一起播種。但爲了我的需要,它總是夠好的。