如何在Code First Drop-Create模式下使用entity framework?

我正在使用Entity Framework v4。 我遵循了书呆子晚餐教程中的说明 。 我目前处于开发模式(没有发布到任何更高的环境),并希望在每个新的部署中重新创build表,因为模型仍然是高度不稳定的,我不在乎保留数据。 但是,这不会发生。 表格不被创build/修改,或者任何发生在数据库中的事情。 如果我使用包pipe理器命令迁移到迁移模型:enable-migrations,add-migration(initial),这可以工作并使用我的迁移。 但是,由于我不想进行粒度迁移,只想要我的初始创build脚本,所以我不得不删除migrations文件夹,每次都要重新执行命令(enable-migrations,add-migration)并手动删除数据库我改变了一切。

如何首先发生代码的拖放/创build行为?

为您的数据库使用DropCreateDatabaseAlways初始值设定项。 在应用程序域中首次使用上下文期间,它将始终重新创build数据库:

Database.SetInitializer(new DropCreateDatabaseAlways<YourContextName>()); 

实际上,如果你想种子你的数据库,然后创build你自己的初始化,它将从DropCreateDatabaseAlwaysinheritance:

 public class MyInitializer : DropCreateDatabaseAlways<YourContextName> { protected override void Seed(MagnateContext context) { // seed database here } } 

并在第一次使用上下文之前设置它

 Database.SetInitializer(new MyInitializer()); 

如果数据库已经存在,并且想要对模型进行更改,则使用DropCreateDatabaseIfModelChanges<YourContextName>