我看到很多使用Code First進行種子播種的例子,但我不確定我是否理解使用EF Database First時播種數據庫的慣用方式。如何使用實體框架數據庫第一種方法爲數據創建數據?
回答
最佳實踐是非常情況依賴。然後是DEV與PROD環境。 在使用Drop時使用自動種子並在DEV期間在模型更改時重新創建,因此您有測試數據最有意義。這是最常用的時候。
因爲您可以擁有手動觸發的測試方法。我個人發現這個想法是一種自動觸發的種子方法,當數據庫結構不穩定時,這種想法並不令人興奮,對於DEV原型設計更是如此。在使用遷移時,您傾向於保留您辛苦獲得的測試數據。有些在PROD的初始安裝過程中使用Seeding。其他人將在安裝/調試過程中觸發特定的負載例程。我喜歡使用自定義加載例程。
編輯:代碼第一個示例。使用數據庫首先,您只需正常寫入數據庫。
// select the appropriate initializer for your situation eg
Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyDbContext, MyMigrationConfiguration>());
Context.Database.Initialize(true); // yes now please
//...
public class MyMigrationConfiguration<TContext> : DbMigrationsConfiguration<TContext>
where TContext : DbContext{
public MyMigrationConfiguration() {
AutomaticMigrationsEnabled = true; //fyi options
AutomaticMigrationDataLossAllowed = true; //fyi options
}
public override void Seed(TContext context)
{
base.Seed(context);
// SEED AWAY..... you have the context
}
}
這看起來不像數據庫第一。 DB First首先不支持遷移。 – Pawel 2013-05-11 04:51:32
沒有它的代碼第一。抱歉。種子過程首先與代碼一起進行。在DB中,建模過程的STOP代碼如下,以防止進程啓動。我現在好奇DB先和播種。顯然是空數據庫然後。所以原來的評論仍然有效。從數據庫第一次開始,只是樣本不相關 – 2013-05-11 05:05:30
- 1. 在實體框架中使用數據庫第一種方法
- 2. 使用實體框架代碼創建數據庫第一種方法
- 3. 如何使用實體框架爲靜態數據創建數據庫?
- 4. 在數據庫第一種方法中爲實體框架5中的所有實體創建一個基類
- 5. 未創建實體框架數據庫
- 6. 實體框架不創建數據庫
- 7. 實體框架不創建數據庫
- 8. 如何使用實體框架從數據庫模型創建數據庫
- 9. 嘗試在現有數據庫的類庫中使用實體框架核心數據庫第一種方法
- 10. 使用示例數據爲實體框架種子數據庫不會創建數據庫
- 11. 使用存儲過程的實體框架數據庫第一種方法
- 12. 使用存儲過程的實體框架數據庫第一種方法
- 13. 不使用實體框架代碼第一種方法創建數據庫方法
- 14. 數據庫,第一種方法和修改數據庫架構
- 15. 加密/解密數據是數據庫第一實體框架
- 16. 從數據庫加載大數據集。實體框架數據庫第一
- 17. 實體框架,獲取數據庫第一種情況列表
- 18. 實體框架,數據庫
- 19. 如何在實體框架數據庫創建後重命名實體框架數據庫?
- 20. 實體框架數據庫第一種方法中的存儲過程
- 21. 使用實體框架數據庫
- 22. 插入記錄使用實體框架(數據庫第一)
- 23. 實體框架代碼第一次使用Access數據庫
- 24. 使用實體框架數據庫第一
- 25. C#:使用實體框架代碼訪問數據庫 - 第一
- 26. 如何更新數據庫使用數據庫第一種方法
- 27. 使用實體框架在數據庫中創建表
- 28. 實體框架在使用sqlserver時不創建數據庫
- 29. 實體框架代碼優先 - 使用MySql創建數據庫?
- 30. 如何使用實體框架建模數據庫?
數據庫首先是當你已經擁有數據庫並且你想用它來創建你的模型。在這種情況下,您最有可能擁有數據庫中的數據。你也不希望/不能刪除數據庫。我想知道如果您已經有數據,您想要爲數據庫創建種子的場景是什麼。無論如何 - 您可以使用sql腳本添加數據,也可以創建上下文,創建實體將其添加到上下文並保存更改。既然你不刪除數據庫,你可能只想做一次。 – Pawel 2013-05-11 04:55:50
在db中,首先可以用你喜歡的任何方式創建/播種數據庫。英孚在這裏是一個完全的外人。 – 2013-05-11 10:16:27