2013-08-22 16 views
0

我正在使用現有數據庫,我的常規方法是添加一個新的實體數據模型並將其指向現有數據庫。如果我要使用EF電動工具和逆向工程來使其「代碼優先」風格,這有什麼優勢?來自數據庫的EF DbContext與EF電源工具從數據庫進行逆向工程。有什麼區別?

這兩個都是從DbContext繼承的類吧?那麼有人可以向我解釋,如果我使用EF電動工具逆向工程工具,隨着時間的推移,代碼庫的優勢可能會有多大?

回答

1

Code First to an existing database從您的C#類生成您的模型(在運行時)。 Database First將模型存儲在.edmx文件中並生成您的類(在設計時)。

視頻Entity Framework Development Workflows給出了一個很好的概述。最終,這取決於您是要使用設計器表面還是使用C#類來維護模型。

還值得一提的是,如果您想使用Code First Migrations,則必須使用Code First,因爲它目前不適用於Database First。

+0

因此,只要使用任何一個代碼是完全一樣的?在我的情況下,我有一個DB人員偶爾對數據庫進行更改,因此我創建了一個新的實體數據模型文件,並指向更新的數據庫...因此,在這種情況下,先編碼到現有數據庫不會使因爲在轉換之後,更改來自數據庫而不是來自代碼。是? – punkouter

+1

@punkouter更正,使用DbContext和實體的代碼完全一樣。數據庫更改後,您可以重新進行反向工程,但我認爲您是對的,Database First聽起來像是適合您的需求,所以沒有令人信服的理由。 – bricelam