0
在我的項目中,我使用實體框架6和代碼優先的方法。我的目標是用所有必需的初始數據初始化數據庫。基於我所做的研究,我決定實施IDatabaseInitializer。然而,有些我不明白,我很樂意得到一些解釋。EF代碼優先:初始化DB的正確方法是什麼?
我想使用「dropcreatedatabaseifmodelchanges」策略。但是,一個初始化程序可以針對單個上下文進行工作。在我的項目中,我有幾個上下文。所以,我決定創建幾個初始化器,每個上下文一個。
但有一個問題:第一個初始化程序加載,刪除數據庫並添加其數據。之後,第二個初始化程序加載並刪除數據庫(以及來自前一個初始化程序的數據)......因此,我以僅加載最後一個初始化程序數據的DB結束。
顯然,我的做法是錯誤的。在有多個數據庫上下文的情況下,初始化數據庫的正確方法是什麼?
感謝
我可以理解,對於單個數據庫有幾種模型,但僅基於這些模型中的一種重新創建數據庫就變得根本不可能。要麼使用單一的統一模型,要麼不讓EF爲你創建數據庫,我不認爲還有其他選擇。 – hvd