2012-06-03 98 views
0

我在C#Asp.net中使用Code First Entity Framework創建應用程序,該代碼將爲不同的客戶使用不同的數據庫(換句話說,每個客戶都有自己的數據庫,這將是第一次使用時生成)。asp.net代碼優先自動數據庫更新

我想找出一種方法來更新所有這些數據庫自動更新我的對象。換句話說,我如何在Code First EF中使用cleanstep系統?

  • 目前我使用InitializerIfModelChange定義一個簡單的數據庫,它允許每當一個架構發生變化時我來測試我的應用程序。但是,這種方法會丟棄數據庫,這在客戶數據庫的情況下顯然是不可接受的。
  • 我必須假設數百名客戶手動更新所有數據庫不是一種選擇
  • 我不介意編寫將數據複製到新數據庫的代碼。

我認爲最好的解決方案是以某種方式備份數據庫,然後將所有數據重新插入新創建的數據庫。更好的辦法是自動更新模式而不刪除數據庫。不過,我不知道如何解決這個問題。任何人都可以將我指向正確的方向嗎?

+0

這是你需要的嗎? http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-automatic-migrations-walkthrough.aspx – Joakim

+0

是的,這就是我需要感謝。後續問題:我如何從代碼運行Update-Database?生成DbContext時,我需要對HttpContext的引用 – garma

回答

0

Joakim發佈的鏈接很有幫助。它需要您更新到EF 4.3.1(不要忘記您在其他項目中的引用,如果有的話),然後您可以運行啓用遷移的命令。要自動更新代碼架構,您可以使用

Configuration configuration = new Configuration(); 
DbMigrator migrator = new DbMigrator(configuration); 
migrator.Update(); 
Database.SetInitializer<DbContext>(null); 
相關問題