1

是否可以使用web.config關閉實體框架?在應用我發展,我們有以下的環境如何關閉環境的實體框架CF遷移

  • 發展
  • 持續集成
  • 集成測試
  • 生產

集成測試和生產數據庫是由數據庫管理管理員,所以我們必須發送一個腳本來修改數據庫。

我花了數小時搜索並瀏覽了舊項目,而且我無法找到如何做到這一點,或者記住,如果我們曾經關閉舊項目的遷移,首先。

由於缺乏信息,我懷疑我所要求的是否需要或可能,但是在我的腦海裏有一些令我煩惱的事情,所以我想我會問專家。

回答

2

最簡單的方法是簡單地從這些環境中刪除dbo._MigrationHistory表中的環境的更新初始化。如果該表不存在,則只能對該數據庫生成「初始」遷移,如果有人試圖將其實際應用於具有現有表的數據庫,則該遷移將失敗。

+0

實際上,我們使用您在博客中提到的腳本技術。 http://cpratt.co/migrating-production-database-with-entity-framework-code-first/ – 2015-02-24 16:46:59

2

你可以設置在底部here描述配置文件中的數據庫初始化,所以你可以有你想要

+0

我正在看那個頁面。 Iniatializer不僅在數據庫不存在時使用?它告訴EntityFramework創建一個新的數據庫等等 – 2015-02-24 16:48:09

+0

取決於初始值設定項。例如,有'DropCreateDatabaseWhenModelChanges',正如其名稱所暗示的那樣,只要架構發生變化,就會完全重新創建數據庫。通常爲了處理現有的數據庫,您只需將初始化程序指定爲'null',這將完全關閉初始化。 – 2015-02-24 16:55:05

+0

這種方法唯一的問題是設置初始化器是在代碼中完成的,所以它的全部或全部都沒有,除非你使用編譯器指令或某種基於Web.config設置的switch語句來做某事。 – 2015-02-24 16:57:46