Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果我的模型更改,如何在EF中重新创建数据库?_C#_.net_Entity Framework - Fatal编程技术网

C# 如果我的模型更改,如何在EF中重新创建数据库?

C# 如果我的模型更改,如何在EF中重新创建数据库?,c#,.net,entity-framework,C#,.net,Entity Framework,我创建了一个DbContext,如下所示: public class myDB : DbContext { public DbSet<Party> Parties { get; set; } public DbSet<Booking> Bookings { get; set; } } 公共类myDB:DbContext { 公共数据库集参与方{get;set;} 公共数据库集预订{get;set;} } 这就生成了我的数据库和上面

我创建了一个DbContext,如下所示:

   public class myDB : DbContext
   {
     public DbSet<Party> Parties { get; set; }
     public DbSet<Booking> Bookings { get; set; }
   }
公共类myDB:DbContext
{
公共数据库集参与方{get;set;}
公共数据库集预订{get;set;}
}
这就生成了我的数据库和上面的两个表..太好了

然后我决定在混合中添加另一个DbSet&我得到了一个错误:

自创建数据库以来,支持“参与方”上下文的模型已更改

我知道使用
modelbuilder.IncludeMetadataInDatabase=false对此进行了修复
数据库.SetInitializer(null)

1) 将新类添加到上下文并在数据库中生成它们的正确方法是什么


2) 在我自己徒劳地试图解决这个问题时,我删除了表并尝试重新运行应用程序,但没有成功,然后我删除了完整的数据库并重新运行,但它没有重新生成数据库。如何从头开始?是否有缓存?

尝试将其放入Global.asax.cs应用程序的\u start()方法中


我相信您正在寻找:

Database.SetInitializer<ClubmansGuideDB>(new DropCreateDatabaseIfModelChanges<ClubmansGuideDB>());

使用
如果您还没有对数据库的引用)

您可以让实体框架通过使用
数据库初始值设定项
重新创建整个数据库,或者如果您想迁移数据,可以查看

当模型更改时,以下操作将重新创建数据库:

Database.SetInitializer<myDB>(new DropCreateDatabaseIfModelChanges<myDB>());
Database.SetInitializer(新的DropCreateDatabaseIfModelChanges());

entity framework issue并不是我见过的最好的标题。当有这么多好的答案时,这条评论有什么用呢?您还可以覆盖种子方法并用测试数据填充数据库。SetInitializer(新的DropCreateDatabaseIfModelChanges());数据库初始化(true);为什么不从我这里工作??
Database.SetInitializer(new EntityBase());
Database.SetInitializer<ClubmansGuideDB>(new DropCreateDatabaseIfModelChanges<ClubmansGuideDB>());
using (var context = new ClubmansGuideDB()) {
    context.Database.Initialize(force: true);
}
Database.SetInitializer<myDB>(new DropCreateDatabaseIfModelChanges<myDB>());