2012-12-05 105 views
0

我希望有人能幫助我,我創建了一個代碼第一次EF MVC4項目。有了這個,我使用了Seed方法和一個使用DropCreateDatabaseAlways的DbInitializer來將數據插入到數據庫中。但是,根據Asp.Net網站,您必須刪除發佈時種下數據庫的所有代碼。MVC4實體框架和種子混亂

我的問題是(在種子方法通過相同的處理罐)我怎樣才能將數據添加到數據庫,如果我不能使用種子方法沒有它被每一次即加入作爲一個關閉。我沒有辦法,只能通過數據庫瀏覽器或SQL Server Management Studio添加到數據庫中嗎?

也是它值得創建一個第二DbInitializer所以我有一個測試,一個用於發佈,因爲我不想刪除所有的種子代碼?

回答

0

我們對這樣的做法是你的開發環境連接到空活動數據庫,運行創建和種子的方法,然後編輯你的代碼刪除,你可以推到應用服務器之前,適當降低數據庫的權利。

如果你不能這樣做,因爲你的數據庫管理員不會允許它,另一種方法是創建一個處理完數據庫的開發數據,然後讓數據庫管理員備份和恢復數據庫到生活環境。

本質上說,是的,它不是一個好主意,留在你的生活應用的創建和種子的代碼,但仍有在其中您可以使用代碼第一種方法,使和種子您的活動數據庫的方式。

我也考慮使用遷移。這些提供了與代碼優先方法相同的功能,但具有更精細的控制和更少的權限要求。

+0

如果我在調試種子將數據仍然在那裏發佈時? – user1166905

+0

如果您將開發環境指向您的實時數據庫,那麼是的。您需要更改web.config文件中的連接字符串。你使用什麼樣的託管/生產環境? (內部網絡,DMZ,異地託管) –

+0

目前的內部網絡。首先,這不會打敗使用Code First的對象,聽起來我應該走數據庫第一路線。 – user1166905