在我的實體框架代碼的第一個項目,如果我跑透過包裝看到EF代碼第一次更新數據庫-Script不運行種子()方法
update-database
命令管理控制檯,我Seed()
方法成功運行。但是,如果我運行帶有-script參數的命令:
update-database -script
...種子()方法不調用,用於播種數據庫生成的SQL不包含SQL命令。這種行爲是可重複的。我正在嘗試創建一個完整的數據庫腳本進行部署。
爲什麼會出現與-script
,沒有它運行SQL命令之間的差異,我怎麼能得到update-database
運行Seed()
方法使用-script
開關是什麼時候?
不夠公平。然而,數據庫通常需要某種相當靜態的「種子」數據來表達像Enums這樣的東西。我不能使用update-database -script來爲不包括EmployeeType(1,「Permanent」)(2,「Temporary」)等等的Ops生成DB部署腳本。 –
是的,的確如此。但這不在遷移範圍之內。如果你想要這樣的東西,你必須自己寫。我在大部分項目中也採用這種方法。 如果您擔心如何構建項目或在何處放置這些腳本,則應考慮SSDT。但是在這種情況下,你必須自己編寫這些腳本。 –
在Configuration.cs中實現它真的很方便 - 這已經在源代碼管理中,並且隱含地與遷移保持一致。我想盡可能自動化。我應該問另一個SO問題:) –