EF Model First:如何以编程方式 generate/delete 数据库?

EF Model First: how to programmatically generate/delete database?

在 EF 教程中,按以下方式描述了模型优先方法的工作:

  1. 创建模型
  2. 从模型
  3. 生成数据库sql
  4. 启动生成sql 通过工作室

但是如何交付给客户呢?数据库必须在程序启动时自动在客户端创建,并且必须在客户 select 某些菜单操作时删除。 如何通过 EF 实现上述行为?

您的模型优先方法应该创建一个派生的 DbContext class,类似于 class MyModelContainer : DbContext.

在您应用的启动阶段,执行如下操作:

using(var ctx = new MyModelContainer())
{
   ctx.Database.CreateIfNotExists();
}

同样,当你想删除它时(先关闭所有连接):

using(var ctx = new MyModelContainer())
{
   ctx.Database.Delete();
}