2012-02-26 91 views
0

假設我有一個現有的數據庫設置爲使用實體框架。是否有一種機制可以讓我安全地添加或刪除實體(或其屬性),以便數據庫自動更改?使實體框架改變現有的實體

我知道有一個選項,以「更新模型從數據庫」。是否有等效的「從模型更新數據庫」?有沒有辦法配置Visual Studio自動執行此操作?

回答

0

改變數據庫模式不是簡單的操作(已列被重命名,或者是新列?可舊類型轉換爲新的類型?),你可以很容易地從模型推斷。

EF不會改變你的表 - 你可以落創建數據庫時,你改變它。但是,如果您手動更改現有數據庫以適應模型,EF似乎並不介意。它看起來像他們檢查的是Hash(Model) = Hash(Tables)

2

實體框架4.3具有的Code First遷移支持。

EF幫助你檢查你的代碼和數據庫之間的差異,然後爲您生成的代碼處理這個變化。您可以使用NuGet包管理器控制檯啓用遷移,添加新的遷移並針對您的數據庫運行它們(或創建一個sql腳本)。

This blog explains的遷移是如何工作的,並this blog展示瞭如何可以與現有的數據庫

+0

使用它。在那一刻,我使用實體框架4和模型率先發展。我可能太過分切換東西了嗎?我的數據庫中沒有任何數據 - 我擁有的只是模型(在我們開始使用數據庫後預計會改變)。 – 2012-02-26 17:03:21

+0

從Model First切換到Code First並不困難,因爲您還沒有數據。我認爲這是值得的,因爲遷移支持將使您的生活變得更加輕鬆 – 2012-02-26 21:18:48