2

我正在學習EF Code First。我讀過Database Initialization Strategies in Code-FirstUnderstanding Database Initializers in Entity Framework Code First的文章。實體框架中的數據庫初始化代碼優先

但我仍然困惑,應該在初始化之前的數據應該在哪裏?這些文章沒有提到這一點,我認爲這很重要。

我建立一個足球應用程序,所以在初始化程序,我想每支球隊和球員的名字插入到數據庫(從最好的聯賽每在歐洲 - 使相當多的數據)。他們不會改變。它們是否應該在源代碼中進行硬編碼?或附加在XML?簡單的文件?

現在我有:運行前,有初始化提示(請稍候,初始化...)我讀取文件,逐行插入到數據庫中。這是好方法嗎?

回答

2

這取決於你在開發過程中的位置。您可以在創建數據庫時運行的初始化程序上使用Seed() method。因此,如果您有大量數據,並且會經常使用DropCreate_____類型的初始化工具來更改模型 - 我建議您僅播種少量數據以進行測試。

當您對初始設計感到滿意時,可以執行完整的Seed()並切換到數據庫遷移來處理模型更改。這將保留您現有的數據,並擁有自己的用於新數據的Seed()方法。

至於從哪裏得到的數據,你可以看看這樣的事情,你可以從Web服務獲取或下載到CSV,XML等http://www.jokecamp.com/blog/guide-to-football-and-soccer-data-and-apis/#footballdata或這裏http://openfootball.github.io/

+0

什麼是優勢利用數據庫初始化的我使用DropCreateDatabaseIfModelChanges以及如果我使用CreateDatabaseIfNotExists而不是? – AminM

+1

如果您正在進行大量模式更改並且沒有接近部署,那麼這很有意義。當事物處於設計模式時無需進行遷移。 –